【发布时间】:2019-11-06 07:22:22
【问题描述】:
我有一个 XML 字符串,我必须在 C# 中解析该 XML(使用 xml.LoadXml())。但在 XML 中有一些特殊字符,如<、>、&、" 等。我已经写了用转义字符替换这些特殊字符。
但问题是 < 和 > 也被 XML 标记的转义字符替换。我该如何解决这个问题?
我只想替换额外的特殊字符,而不是 XML 标记值。
XML:
<?xml version="1.0" encoding="utf-8"?>
<Objects>
<Object>
<t2>test<
</t2>
<t3>test</t3>
<s4>76</s4>
<s7>321</s7>
<t4>test</t4>
<t6>test&</t6>
<t8>NY</t8>
</Object>
</Objects>
【问题讨论】:
-
嗯?您是说您的 XML 格式不正确并且您正在尝试纠正它吗?一些匿名 XML 作为示例可能有助于说明您的问题。
-
示例 XML:"
" 在上面的 xml t2 标记中有额外的 ' -
你从哪里得到这个 XML?例如,
test&lt;应该已经在有效 XML 中转义为test&lt;。 -
等等,您是手动生成此 XML 吗?在这种情况下,这是一个XY problem。您的问题不是修复 XML,而是如何不首先像这样生成它。最简单的选择是将serialize a C# object 转换为 XML。
-
我真的没有一个好的解决方案。如果用户写入
<test/>,然后在您的XML 中变成<t2><test/></t2>,那么<test/>是有效XML 的一部分,还是应该转义?你怎么知道?
标签: c# xml xml-parsing