用bcdgen转换的头文件。
对xml不大感兴趣。只是尝试用D语言改写,证明它还是能正确处理xml的。
和C程序差不多。真不爽。
/**
* expat 中的例子改写成D语言
* Edit By Liu Dehong @ 2007/08/10
* version: 1.0
*/
import std.stdio;
import std.stream;
import bcd.expat.xmlparse;
extern(C)
void startElement(void* userData, XML_Char* name, XML_Char** atts)
{
int i;
int *depthPtr = cast(int *) userData;
for (i = 0; i < *depthPtr; i++)
putchar('\t');
printf("%.*s\n", name);
*depthPtr += 1;
}
extern(C)
void endElement(void *userData, XML_Char *name)
{
int *depthPtr = cast(int*) userData;
*depthPtr -= 1;
}
int main()
{
int done;
int depth = 0;
XML_Parser parser;
string fn = "a.xml";
File f = new File(fn);
parser = XML_ParserCreate(null);
XML_SetUserData(parser, &depth);
XML_SetElementHandler(parser, cast(XML_StartElementHandler)
&startElement, cast(XML_EndElementHandler) &endElement);
while (!f.eof())
{
string line = f.readLine();
//writefln(line, line.length);
if (!XML_Parse(parser, cast(char*) line, line.length, done))
{
fprintf(stderr,
"%s at line %d\n",
XML_ErrorString(XML_GetErrorCode(parser)),
XML_GetCurrentLineNumber(parser));
return 1;
}
}
XML_ParserFree(parser);
return 0;
}
分享到:
相关推荐
使用expat解析器解析XML文件,并显示在树控件。
expatxml解析器.pdf
这是一个短小简洁的XML解析器(c方式),不过只支持流方式,同时提供来自www.codeproject.com的一个C++封装
expat xml解析(C语言),还没解决中文问题,希望有高手能帮忙做下UTF8转换的通用代码,不受操作系统的限制的!!
刚刚学习使用Expat,却发现Expat并不支持中文。后来查找相关资料,得知Expat不支持gb2312编码格式,主要支持UTF-8编码格式。然而我们在程序中传递数据时,往往是用的gb2312格式文本的,于是想找出办法解决之,想到两...
expat使用回调方式返回xml数据,解析器解析到一个element及其内部属性后,将调用事先设置好的函数,同样,当element结束和text结束后,也会分别调用对应的函数。 2.如何处理数据之间的包含关系 典型的方式是...
刚学习Expat的时候,发现Expat并不支持中文XML的解析,因此对其进行了封装,内附编译好的可执行程序及测试用XML文件,命令行:ExpatSaxDemo demo.xml 详细信息参见:...
主要介绍了php 使用expat方式解析xml文件操作,结合实例形式分析了PHP使用expat方式解析xml文件具体步骤与相关操作技巧,需要的朋友可以参考下
经典的XML解析工具expat的实用说明,无需参考其他文档即可快速的完成XML解析代码。
expat是一个由C语言编写的XML解析库。 James Clark创建了这个库,现在是制定XML标准的W3组织的技术leader。 现在的版本是2.0。 2.0开始就由Clark Cooper领导的开发组在 sourceforge.net 负责开发。
请注意,我们正在迁移到GitHub:https://github.com/libexpat/libexpat这是James Clark的C语言中的Expat XML解析器库。它是一个面向流的解析器,需要设置处理程序来处理结构。解析器在文档中发现的。 请注意,我们...
expat 是使用C所写的XML解释器,采用流的方式来解析XML文件,并且基于事件通知型来调用分析到的数据,并不需要把所有XML文件全部加载到内存里,这样可 以分析非常大的XML文件。由于expat库是由XML的主要负责人James ...
expat使用回调方式返回xml数据,解析器解析到一个element及其内部属性后,将调用事先设置好的函数,同样,当element结束和text结束后,也会分别调用对应的函数。 2.如何处理数据之间的包含关系 典型的方式是...
Windows 用户应使用 expat_win32bin 开发包,其中包括预编译的库和可执行文件和源代码。 标签:Ygloo 分享 window._bd_share_config = { ...
C语言下非常好用的xml解析器,可以直接嵌入到程序中,版本稳定。
Expat版本2.2.10 这是Expat,一个解析XML的C库,由于1997年创立。Expat是面向流的XML解析器。 这意味着您在开始解析之前向解析器注册了处理程序。 当解析器在要解析的文档中发现关联的结构时,将调用这些处理程序。 ...
fast_xml:基于Fast Expat的Erlang XML解析库
Expat是一个面向流的解析器。您注册的解析器回调(或handler)功能,然后开始搜索它的文档。当解析器识别该文件的指定的位置,它会调用该部分相应的处理程序(如果您已经注册的一个)。该文件被输送到解析器,会被...