【发布时间】:2017-09-02 01:24:29
【问题描述】:
所以我遇到了这个我想用 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>
我想要“pum1”和“pum2”下的数字在单独的变量/矩阵格式/列表中。还有另一个变量中的“类型”。
【问题讨论】:
-
如果“非标准”是指“无效”,那么您将与第 3 方 XML 库作斗争——它们通常被设计为只允许有效的 XML。您可以编写自己的解析器(不要!)或执行必要的手术以首先将数据转换为有效的 XML。
-
但是我有这么多文件,有没有办法直接通过ifstream读取这些数据?
-
您可以通过任何标准机制阅读它。但问题在于 XML 解析。
-
我怎样才能把这些数据转换成有效的XML?
-
XML都是这么简单的格式吗?
标签: c++ xml parsing xml-parsing