免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6536 | 回复: 29
打印 上一主题 下一主题

请问C如何解析xml里含标签和一大堆字符!(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-16 18:53 |只看该作者 |倒序浏览
问题是这样的:有如下这种类型的xml:
<request>
        <get></get>
                <info>
                 <root>jfkakjl;k#%$%!???<<fdsa<for></for>dafsaergrew</root>
        </info>
</request>

此xml中的root标签里的内容含有乱码或含有正常标签,,,现在要把root标签中的内容全部当做一个字符串解析出来,存入一个字符串数组中;


请各位高手,这个如何实现,用什么方法,拜拖了
其实用处理字符串,拆分的方法也可以得到想要的数据 ,但领导不让用,只好想办法,麻烦大家帮帮忙!

[ 本帖最后由 绿茶主演 于 2006-11-20 14:28 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-11-16 21:54 |只看该作者
如果你要处理xml类型的数据,就必须遵循xml最基本的规范, 你的sample里面的root标签不符合xml的规范,这样的话就不能使用通用的dom, sax之类的处理方式。
    要么使用字符串来处理,但是很容易出错。最好的方式是遵循xml的规范来处理。

refer:
这个是w3schools的validatation tool, 当然,最简单的方法是用IE6来验证。

http://www.w3schools.com/xml/xml_validator.asp

这个是MSXML的sdk pacakge, 可以参考里面的help doc和source code.

http://www.microsoft.com/downloa ... &displaylang=en

论坛徽章:
0
3 [报告]
发表于 2006-11-16 22:57 |只看该作者
有现成的库,我知道的就有tinyxml,但是C++做的,应该也有C写的库

论坛徽章:
0
4 [报告]
发表于 2006-11-17 00:30 |只看该作者
XMLREADER       XML;
XMLSECTION     ROOT;
XMLSECTION     SEC;
char                  outbuffer[256];

if(!XML10_InitReaderFromBuffer(&XML,xmlcharbuffer,strlen(xmlcharbuffer)))
{
    return -1;
}

if(XML10_LocateRootSection(&XML,&ROOT))
{
      if(XML10_LocateSectionInSection(&ROOT,&SEC,"root"/*你要找的root段*/))
      {
              XML10_GetSectionValue(&SEC,outbuffer,256);

      }

}

论坛徽章:
0
5 [报告]
发表于 2006-11-17 09:12 |只看该作者

回复 4楼 ChinaDream 的帖子

哦,看来有点门,先谢谢你,顶下,再试试,呵呵!!

论坛徽章:
0
6 [报告]
发表于 2006-11-17 09:16 |只看该作者

回复 2楼 greysky_xu 的帖子

谢谢你,可是你好像没理解我的意思,一般的解析我知道如何处理,但这是特殊情况,我们的这个东西中将 要存储流文件以及图片文件的乱字符, 难免要包含乱码和标签,量又很大,没办法啊,不能处理字符,也搞不到通用格式!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2006-11-17 09:38 |只看该作者
原帖由 绿茶主演 于 2006-11-17 09:16 发表
谢谢你,可是你好像没理解我的意思,一般的解析我知道如何处理,但这是特殊情况,我们的这个东西中将 要存储流文件以及图片文件的乱字符, 难免要包含乱码和标签,量又很大,没办法啊,不能处理字符,也搞不到通用 ...

为什么说“难免”?
是历史遗留问题,还是你对 XML 缺乏足够的认知?

求职 : 数据库管理员
论坛徽章:
0
8 [报告]
发表于 2006-11-17 09:40 |只看该作者
原帖由 绿茶主演 于 2006-11-17 09:16 发表
谢谢你,可是你好像没理解我的意思,一般的解析我知道如何处理,但这是特殊情况,我们的这个东西中将 要存储流文件以及图片文件的乱字符, 难免要包含乱码和标签,量又很大,没办法啊,不能处理字符,也搞不到通用 ...


如果你要放的是存储流文件以及图片文件的乱字符得東西
可以將它先編碼一下啊,如base64 之類的

[ 本帖最后由 gangjh 于 2006-11-17 09:42 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2006-11-17 10:32 |只看该作者

回复 7楼 flw 的帖子

xml里的内容是由搞页面的人传给我的,他们说他们无法剔除内容里的标签,只让我来试试看能不能解析出内容来!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
10 [报告]
发表于 2006-11-17 10:33 |只看该作者
原帖由 绿茶主演 于 2006-11-17 10:32 发表
xml里的内容是由搞页面的人传给我的,他们说他们无法剔除内容里的标签,只让我来试试看能不能解析出内容来!

不用踢除,只需要编码就可以了。
你懂不懂什么叫 Base64?
懂不懂什么叫 urlencode?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP