谁做过xml树?

godeyeswang 2009-02-04 11:46:55
下周要交个作业,需要用c++读取一个xml文件,分析xml语句后建一个类来存储xml树,并能遍历、添加、删除、编辑节点的信息(信息包括tag、id、text等),大家谁有做过类似的东西,或者其中一部分功能?请发来看看,我目前自己做了几天的程序问题一堆。谢谢啊

或者有没高手顺手就能写出来相关程序?那真佩服死了。
...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
记得有例子下的。
jackzhhuang 2009-02-04
  • 打赏
  • 举报
回复
tinyxml,有源代码

Proteas 2009-02-04
  • 打赏
  • 举报
回复
有开源的xml操作库的,
你可以google下,
工作中一般都不自己实现这些东西的.
godeyeswang 2009-02-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 redleaves 的回复:]
这个东西其实很简单...就是通过最简单的词法分析生成一个多叉树.
你可以参考一下tinyXML.
[/Quote]

词法分析就卡住了,<note Company="Wintellect"></note>这种带子节点的定义不知道怎么分出来,然后建立的树也有点问题。
godeyeswang 2009-02-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jichre 的回复:]
我有一个是搞网络的xml,不知道合适不,但是有点长
[/Quote]

请发给我看看,邮箱wangshaonan@yeah.net,谢谢啊
jichre 2009-02-04
  • 打赏
  • 举报
回复
我有一个是搞网络的xml,不知道合适不,但是有点长
redleaves 2009-02-04
  • 打赏
  • 举报
回复
这个东西其实很简单...就是通过最简单的词法分析生成一个多叉树.
你可以参考一下tinyXML.
redleaves 2009-02-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 godeyeswang 的回复:]
引用 1 楼 redleaves 的回复:
这个东西其实很简单...就是通过最简单的词法分析生成一个多叉树.
你可以参考一下tinyXML.


词法分析就卡住了, <note Company="Wintellect"> </note>这种带子节点的定义不知道怎么分出来,然后建立的树也有点问题。
[/Quote]
那就看一下编译原理的书. 你说的这种情况最直接的解法就是递归...当然用stack会更灵活一些.
至于你说的建立树有问题,那应该是你的设计问题.
分析XML的基本框架如下:

parse ( parent ) {
switch ( get token ) {
case is_tag_begin:
switch ( get token ) {
case is_tag_name:
new_tag
while ( get property ) {
push new_tag new_property
}
push parent new_tag
if ( is_not_closed ) {
parse( new_tag )
if ( get end_tag not matched ) {
error;
}
}
break;
default:
error;
}
break;
case is_text:
get new_text
push parent new_text
break;
case is_comment:
get new_comment
push parent new_comment
break;
...
}
}

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧