【发布时间】:2014-10-08 15:51:30
【问题描述】:
所以我必须解析一个简单的 XML 文件(只有一层,没有属性,只有元素和值),但问题是 XML 中有(或可能有)空格。我知道这是不好(可能很糟糕)的做法,但我不是构建 XML 的人,它来自外部库。
示例:
<live key>test</live key> <not live>test</not live> <Test>hello</Test>
现在我的策略是一次读取一个字符的 XML(我将它作为一个字符串),并在我得到它时保存每个元素的名称和值,但这似乎有点太复杂了。
有没有更简单的方法? XMLReader 会抛出一个错误,因为它认为 XML 格式正确,因此它认为“live”是元素名称,而“key”是一个属性,所以它试图寻找一个“=”并得到一个“ >”。
【问题讨论】:
-
我个人会尝试删除或替换所有空格,然后加载 xml。但这也可能很棘手。
-
我会向管理这个图书馆的人发送一封措辞强硬的信
-
不幸的是,空格使输入不是格式良好的 XML,这意味着没有标准解析器会接受它;本质上,你是一个人。这太糟糕了 - 尝试说服您的 3-rd 方库的作者来解决这个问题。如果他们还在,他们应该明白为什么。
-
您是否有所有可能包含空格的标签的列表,或者该列表是动态的?
-
为什么将其称为 XML?它不是那种东西。如果您的数据供应商想要发明一种自定义的非标准 XML 变体,则需要有人为其编写解析器。这是一个很大的努力,我不明白为什么有人愿意这样做。
标签: c# xml xml-parsing