返回信息流现在有一个XML文件格式如下:
<chamenmalon>
<blax>
<name>foo</name>
<desc>bar</desc>
<blax>
<name>ss</name>
<desc>ii</desc>
<blax>
<name>tt</name>
<desc>jj</desc>
</blax>
</blax>
<blax>
<name>uu</name>
<desc>vcv</desc>
</blax>
</blax>
<blax>
<name>ww</name>
<desc>oopp</desc>
</blax>
</chamenmalon>
抽象的说:
chamenmalon ::= (blax)*
blax ::= (name, desc, blax*)
都是正则表达式,你懂的。
需要把所有的blax解除嵌套。
<quadodaton>
<blax>
<name>foo</name>
<desc>bar</desc>
</blax>
<blax>
<name>ss</name>
<desc>ii</desc>
</blax>
<blax>
<name>tt</name>
<desc>jj</desc>
</blax>
<blax>
<name>uu</name>
<desc>vcv</desc>
</blax>
<blax>
<name>ww</name>
<desc>oopp</desc>
</blax>
</quadodaton>
quadodaton中blax按照chamenmalon前序遍历的顺序给出,先在chamenmalon中出现的blax先在quadodaton中出现。
形式化的说,就是
quadodaton ::= (blax)*
blax ::= (name, desc)
mm要用C++,不过,要知道我只代理C语言作业,所以尽量说服她吧。民那桑有什么想法吗,什么SAX,DOM,JAXP,libxml,tinyxml,dom4j,xslt,elementtree,scala都可以。
这是一条镜像帖。来源:北邮人论坛 / soft-design / #38605同步于 2010/6/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
[帮mm求助,来做题阿阿阿阿阿阿阿阿阿]XML转换
wks
2010/6/6镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
【 在 wks 的大作中提到: 】
: 现在有一个XML文件格式如下:
: <chamenmalon>
: <blax>
: ...................
这个先解析为语法树 然后按要求遍历了。。。
傲娇。。。。
【 在 FadeToBlack 的大作中提到: 】
: 什么parse一类的最讨厌了
: --
: 发信人: winton (win小分队|TT), 信区: Diablo
: ...................
呃………
我觉得只要把</blax>移动一下位置就好了,不用做分析吧。
把第一个遇到的,没有配对的</blax>符号,移动到第一个遇到的没有闭合的<blax>处。
有道理。把所有的</blax>删除,把所有的<blax>替换成</blax><blax>,然后把第一个</blax>移动到</chamenmalon>前。
【 在 ericyosho 的大作中提到: 】
: 呃………
: 我觉得只要把</blax>移动一下位置就好了,不用做分析吧。
: 把第一个遇到的,没有配对的</blax>符号,移动到第一个遇到的没有闭合的<blax>处。
: ...................
去除所有的</blax>, </desc>替換為</desc>\n</blax>
【 在 wks 的大作中提到: 】
: 有道理。把所有的</blax>删除,把所有的<blax>替换成</blax><blax>,然后把第一个</blax>移动到</chamenmalon>前。
既然是做题,还是用正规方法好一点。
应该是递归解析,再加个数组保存。
用哪种工具包做解析都不是很复杂的事。
练习一下总没坏处。
此外我对楼主只用C不用C++感到无语...