【发布时间】:2026-02-12 14:55:01
【问题描述】:
我正在使用第 3 方 XML 解析器(不是我的决定),发现它做的不好。这是 XML 标记的内部部分:
"Date=""2014-01-01"" Amounts=""100717.72 100717.72 100717.72 100717.72"""
为了解析属性,代码对空格执行.split,忽略引号。只要没有带空格的字符串,它就可以正常工作,但我们到了。它返回正确的 Date=2014-01-01 和半正确的 Amounts=100717.72,但随后又返回了四个仅包含数字的条目。
我有解析器的 C# 代码,并考虑用其他字符替换引号内的空格、拆分并将它们改回来。但后来我想我应该先在这里问。
有没有办法将此文本正确地解析为两个条目?
更新:原始 XML 如下(从另一台计算机输入,请见谅!)
<DetailAmounts Date="2014-01-01" Amounts="100717.72 100717.72 100717.72 100717.72" />
【问题讨论】:
-
所以这是您无法控制的属性?双双引号总是存在吗?您还需要每个数字吗?
-
该属性来自第 3 方服务器生成的文本文件 - 那里没有访问权限。双引号不在原始文件中,它似乎是调试器输出中发生的事情?我确实需要每个数字,我应该取回两个项目,第二个是整个 Amounts= 字符串
-
它是有效的 xml。您(必须?)使用的解析器很糟糕。为什么不使用 .net 的普通 xml 功能(如 xmlserializer)...?
标签: c# .net parsing xml-parsing