采用Expat检查XML文档是否格式良好

  
采用Expat检查XML文档是否格式良好
胡家辉/雨水 2007-08-11
 
这里简单介绍一下如何用Expat解析器来检查XML文档是否格式良好。Expat是一个用纯C语言写的XML解析器。具有XML解析器一般的功能,可以检查XML格式是否良好(well-formed),但不支持schema校验。
为了简便,这里就直接将要检查的XML文档放入缓存中。如需要可以从文件读取或者来自其他地方。
编写自己的Expat应用程序前,需要先通过源代码构建出libexpat.lib和libexpat.dll这两个文件(windows环境)。然后在应用程序中加入对该库的链接。
下面的程序具有检查xml文档是否格式良好的功能,如果检查到格式非良好,程序会准确报告出错的位置(行号和列号)以及错误信息。
 
#include <stdio.h>
#include < string .h>
#include <expat.h>
 
#pragma comment(lib, "libexpat.lib"
 
#define BUFFSIZE         8192
 
char Buff [ BUFFSIZE ] = "<book><name>XML Tutorial</name><price>27</price></book>" ;
 
in t main()
{
       int done = 0;
 
       XML_Parser parser = XML_ParserCreate ( NULL );
       if ( NULL == parser )
       {
              printf ( "Couldn't allocate memory for parser/n" );
 
              return -1;
       }
 
       if ( XML_Parse ( parser , Buff , strlen ( Buff ), done ) == XML_STATUS_ERROR) {
              printf ( "Parse error at line %d, Column %d, /n%s/n" ,
                     XML_GetCurrentLineNumber ( parser ),
                     XML_GetCurrentColumnNumber ( parser ),
                     XML_ErrorString ( XML_GetErrorCode ( parser )));
             
              return -1;
    }
 
       return 0;
}
 
    代码非常简单,这里不多作解释。可以故意将Buff中的xml数据改为格式非良好来查看程序的反应。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gobitan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值