| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 753 人关注过本帖
标题:xml的c语言实现
只看楼主 加入收藏
曲水流觞
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-30
收藏
 问题点数:0 回复次数:0 
xml的c语言实现
其实也没有标题那么唬人

在本次作业中,请你设计一个简单的XML 解释器, 它可以读入一个简单的XML文本文件(实际应用中XML 文见结构要复杂的多, 这里,我们只是仅仅处理文件中的“标记”)。文件内容如下所示。
一个简单的XML文件:
<class>
        <student>
            <name>ABC</name>
            <id>123456</id>
        </student>
</class>
每组“标记”包含两部分:标记名称和标记值。例如, <id>123456</id>是一组标记。标记名称包含在一对尖括号中("<" 和 ">"), <id> 称为标记头, </id> 称为标记尾。 标记头和标记尾之间的称为标记的值。  在上面的例子中,标记名称=id, 标记值=123456。
有时候,在标记头和标记尾之间还可以嵌入其他标记组。如标记 <student> 包含了标记 <name> 和标记 <id> 作为它的值,我们称这种包含关系为父-子关系。 或者说, <student> 是 <name> 和 <id>的父亲。
这种简单的XML 文件可以用一种树状结构来描述, 它由一组结点的集合组成。如下图所示, 上述的文件中的XM语句描述的是一棵包含了4个结点(用圆圈表示)的树。在这个作业中每个结点包含3个成员变量:
    一个称为 "name" 的字符串变量- 用于存储结点的名称
    一个称为 "value" 的字符串变量- 用于存储结点的值
    一个指向儿子的指针数组 – 用于指向当前结点的各个儿子结点
    如果需要, 你也可以加上其它的成员变量。
 
这个作业的目标是需要你编制一个程序,读入一个XML文件,然后从顶部(根结点)按层次顺序打印出该树状结构的所有结点(每行打印一个结点的内容), 每层按从左到右的顺序打印该层的节点。每个结点包含它的3个成员变量值。
每个结点内容的打印顺序为:结点编号 - 结点标记名称:标记值,儿子:儿子结点标号,儿子结点标号,……
例如,上面的文件将打印输出如下:
Element 1- class : null, child: Element 2
Element 2 - student: null, child: Element 3, Element 4
Element 3 - name : ABC, child: null
Element 4 - id: 123456, child null
 注意,在你的作业中不允许使用现成的XML 解释器。 输入的文件是一个括号完全匹配的有效的 XML文件。  每个结点的儿子数可以不相同,层次的深度也不限定。尖括号 <>之间无空格。
你的程序首先应当检查括号的匹配情况。如果括号不匹配,应能报告错误并退出程序的运行。   
以下是你可以用来测试验证你的程序的XML实例文件:test.xml  和对应的结果输出文件:Testoutput
你的程序的运行格式是:程序文件名 输入的XML文件名<回车>,例如:>yourprogram test.xml


对于将xml文件转化为树的那一部分,我已经完全无语了...... 完全没思路

挣扎在c中的小白向高手们求助,没有源代码的话,至少请教教我算法!!!感激不尽!!!
搜索更多相关主题的帖子: xml c语言 
2008-09-30 17:13
快速回复:xml的c语言实现
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024163 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved