glib 解析xml
有5种不同的事件类型
1)一个element的开始
2)一个element的结束
3)element得文本
4)一些stuff
5) 错误
There are five kinds of event which can happen:
- The start of an element
- The end of an element
- Some text (inside an element)
- Some other stuff (processing instructions, mainly, including comments and doctypes)
- An error
simple.xml :
<zoo> <animal noise="roar">lion</animal> <animal noise="sniffle">bunny</animal> <animal noise="lol">cat</animal> <keeper/> </zoo>
被解析成以下的动作
- Start of “zoo”.
- Start of “animal”, with a “noise” attribute of “roar”.
- The text “lion”.
- End of “animal”.
- Start of “animal”, with a “noise” attribute of “sniffle”.
- The text “bunny”.
- End of “animal”.
- Start of “animal”, with a “noise” attribute of “lol”.
- The text “cat”.
- End of “animal”.
- Start of “keeper”.
- End of “keeper”.
- End of “zoo”.
程序运行结果
I am a lion and I go roar. Can you do it?
I am a bunny and I go sniffle. Can you do it?
I am a cat and I go lol. Can you do it?
|
static void text( GMarkupParseContext * context,
const gchar * text,
gsize text_len,
gpointer user_data,
GError * * error )
{
if ( current_animal_noise)
printf ( "I am a %*s and I go %s. Can you do it?/n" ,
text_len, text, current_animal_noise) ;
printf ( "test text/n" ) ;
}
GMarkupParser parser = {
. start_element = start,
. end_element = end,
. text = text,
. passthrough = NULL ,
. error = NULL
} ;
int main( )
{
char * buf;
gsize length;
GMarkupParseContext * context;
g_file_get_contents( "test.xml" , & buf, & length, NULL ) ;
g_printf( "%s/n" , buf) ;
context = g_markup_parse_context_new( & parser, 0, NULL , NULL ) ;
if ( g_markup_parse_context_parse( context, buf, length, NULL ) = = FALSE )
{
printf ( "Couldn't load xml/n" ) ;
g_markup_parse_context_free(context);
return 0;
}
glib 解析xml相关推荐
- python 使用sax 解析xml 文件
这里不是说xml 的所以如果xml 不了解,可以百度大致看下即可, SAX知识了解 SAX (simple API for XML ) 有解析器和事件处理器 解析器负责读取XML文档,并向事件处理器 ...
- c语言解析xml字符串_Python XML解析
Python XML解析 什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). 你可以通过本站学习XML教程 XML 被设计用来传输和存储数据. XML是 ...
- python中利用lxml模块解析xml文件报错XMLSyntaxError: Opening and ending tag mismatch
今天在代码中第一次使用lxml解析xml文件时出错了, XMLSyntaxError: Opening and ending tag mismatch: keyEffectiveDate line 2 ...
- XML 解析XML文档 XML约束
XML 什么是XML Extensible Markup Language(可扩展的标记语言) 他是一个语言,有自己的语法,和Java以及其他的编程无关 "标记" 在文件中包含类似 ...
- VC解析XML--使用CMarkup类解析XML
经过今天尝试MFC解析XML串,也算有了不少收获,总结一下. 我是使用的CMarkup类对XML进行操作. CMarkup好象都是先从一个xml ...
- JAVA动态读取xml_Java动态生成和解析xml文件步骤详解
packageday12;importjava.io.FileInputStream;importjava.util.ArrayList;importjava.util.List;importorg. ...
- java xml中的冒号_Java jdom解析xml文件带冒号的属性
Java jdom解析xml文件带冒号的属性 如果xml文件解析带了冒号的属性,一般都是要特别处理,这里是命名空间,N年前遇到过一次忘记记录,后来也忘了,这次再记录下. 解决了,记录下,分享给大家,百 ...
- java xml dom4j 解析_在JAVA中怎么用DOM和DOM4j解析XML啊?
二.XML文件 三.开始解析 public class JDOMTest { public static void main(String[] args) { // 进行对books.xml文件的JD ...
- 【学习笔记】关于DOM4J:使用DOM4J解析XML文档
一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...
- 详解Java解析XML的四种方法
http://developer.51cto.com 2009-03-31 13:12 cnlw1985 javaeye 我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...
最新文章
- JavaScript思维导图之数组
- Docker框架的使用系列教程(三)
- vue学习问题总结(一)
- PHP多种形式发送邮件
- Rust 1.34.1 稳定版发布,Bug 修复
- bat复制文件到指定目录同名_利用bat让文件在指定时间自动进行备份
- Lu 微分方程参数优化(拟合)
- HTML网页中显示图片(相对路径 绝对路径)
- 手机详情 html代码生成器,dede源码最新版手机移动端静态生成模块插件
- Linux下安装各种常用软件
- 怎么确定电脑上没有mysql_怎么检查电脑有没有mysql?
- 如何快速定位并修复Bug
- 猿创征文|我在人间编程那些年
- 如何看hbo_如何取消HBO Max订阅
- 查找计算机硬件和软件的翻译工具,计算机软件和硬件,PC computer software and hardware,音标,读音,翻译,英文例句,英语词典...
- javascript时间日期操作
- 大规模SNS中兴趣圈子的自动挖掘
- 如何使用idea 连接达梦数据库?
- 水果店刚起步要怎么做,一家水果店要准备什么
- 2018-2019 20165226 Exp7 网络欺诈防范