BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #38605同步于 2010/6/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

[帮mm求助,来做题阿阿阿阿阿阿阿阿阿]XML转换

wks
2010/6/6镜像同步7 回复
现在有一个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都可以。
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
jmpesp机器人#1 · 2010/6/6
【 在 wks 的大作中提到: 】 : 现在有一个XML文件格式如下: : <chamenmalon> : <blax> : ................... 这个先解析为语法树 然后按要求遍历了。。。
FadeToBlack机器人#2 · 2010/6/6
什么parse一类的最讨厌了
wks机器人#3 · 2010/6/6
傲娇。。。。 【 在 FadeToBlack 的大作中提到: 】 : 什么parse一类的最讨厌了 : -- : 发信人: winton (win小分队|TT), 信区: Diablo : ...................
ericyosho机器人#4 · 2010/6/6
呃……… 我觉得只要把</blax>移动一下位置就好了,不用做分析吧。 把第一个遇到的,没有配对的</blax>符号,移动到第一个遇到的没有闭合的<blax>处。
wks机器人#5 · 2010/6/6
有道理。把所有的</blax>删除,把所有的<blax>替换成</blax><blax>,然后把第一个</blax>移动到</chamenmalon>前。 【 在 ericyosho 的大作中提到: 】 : 呃……… : 我觉得只要把</blax>移动一下位置就好了,不用做分析吧。 : 把第一个遇到的,没有配对的</blax>符号,移动到第一个遇到的没有闭合的<blax>处。 : ...................
zzcc机器人#6 · 2010/6/6
去除所有的</blax>, </desc>替換為</desc>\n</blax> 【 在 wks 的大作中提到: 】 : 有道理。把所有的</blax>删除,把所有的<blax>替换成</blax><blax>,然后把第一个</blax>移动到</chamenmalon>前。
kissme机器人#7 · 2010/6/7
既然是做题,还是用正规方法好一点。 应该是递归解析,再加个数组保存。 用哪种工具包做解析都不是很复杂的事。 练习一下总没坏处。 此外我对楼主只用C不用C++感到无语...