在C中读取具有未知格式的XML文件

时间:2014-10-15 12:08:16

标签: c xml-parsing

如何从具有未知格式的XML文件中读取,例如文件的格式可以是:

<data1>int1</data1>
<data2>int2</data2>
<data3>int3</data3>
<data4>int4</data4>

OR

<data1>int1</data1>
<data4>int4</data4>

OR

<data1>int1</data1>
<data2>int2</data2>
<data3>int3</data3>
<data4>int4</data4>
<data5>int5</data5>

在第二种情况下,我假设int2和int3将被分配默认值。我想到了解决这个问题的一种方法,但它出现了混乱和意大利面条。 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

(1)这些都不是完整的XML文档。需要有一个根元素。

(2)如果您不坚持限制其实例的数量和顺序,可以很容易地在DTD中声明元素内容可以是其他元素的混合,使用& #39; |&#39;运营商。 (见http://www.w3.org/TR/xml11/#sec-element-content

(3)如果你想更严格地约束那些,那么是的,DTD可能需要拼写出所有的组合。切换到XML Schemas验证是一个明显的解决方案; DTD几乎被认为是过时的,因为它们与XML命名空间(已经成为XML处理的基本部分)不兼容。

(4)如果你坚持坚持使用DTD,并且不能接受无限制的订单/计数,并且不想拼出所有可能的序列......考虑做一些检查和/或在应用程序代码中应用默认值而不是在DTD中。