如何在C ++中阅读此XML文件?非标准(阅读)"无效" XML

时间:2017-04-06 20:11:49

标签: c++ xml parsing xml-parsing

所以我遇到了我想用C ++阅读的XML文件。它的标题信息似乎很奇怪,还有很多像这样的文件。我似乎无法改变批量,因此我将不得不按原样阅读。

我也可以直接使用ifstream解析它。我想提取数据和数字。其中一个文件的内容如下:

<!DOCTYPE refSeg SYSTEM "isthisthereallife.no">
<refSeg src="skjkska.doc" how="dunno" willa="25820">
<trans type="IN1" pum1="2280" pum2="2281"/>
<trans type="IN2" pum1="3495" pum2="3496"/>
<trans type="IN3" pum1="4936" pum2="4937"/>
</refSeg>

我希望数字在&#34; pum1&#34;和&#34; pum2&#34;在单独的变量/矩阵格式/列表中。而且&#34;类型&#34;在另一个变量中。

1 个答案:

答案 0 :(得分:1)

通过谈论&#34;非标准&#34;你会让所有人感到困惑。和&#34;无效&#34; XML。

没有什么&#34;非标准&#34;关于您向我们展示的XML示例。我们无法判断它是否无效&#34; - 这一切都取决于文件中的DTD定义&#34; isthisthereallife.no&#34;,它定义了允许XML文件包含哪些元素和属性。

我怀疑当你说&#34;非标准&#34;你的意思是&#34;在&#34;之前我从未见过带有DOCTYPE定义的XML文件。

您的下一步取决于您是否可以找到DTD文件&#34; isthisthereallife.no&#34;以及是否可以找到有关允许的XML内容的内容。

作为提出问题的一般提示,如果某些事情不起作用,你应该告诉我们你做了什么,以及它究竟是如何失败的。