【问题标题】:XML Special Character HandlingXML 特殊字符处理
【发布时间】:2012-06-27 15:15:07
【问题描述】:

VB / C# 我试图解析包含特殊字符的 XML 文件,

replace & with &amp
' with &apos
< with &lt
> with &gt

字符串替换没有替换标记中的特殊字符“”。 我尝试捕获当同一行中有多个特殊字符时不起作用的 XML 异常,如果一行中只有一个特殊字符,它就可以工作。 MS 内置方法 SecurityElement.Escape 不起作用,这必须在附加 XML 标记之前完成。

我正在使用这个文件来加载一个 SQL 表。

还有其他处理 XML 多个特殊字符的解决方案吗?

【问题讨论】:

  • 您必须手动处理文本之间的所有特殊字符。
  • 您是否尝试手动解析 XML?为什么不将 XML 文档加载到 XDocument 或 XmlDocument 实例中?
  • 能否展示您认为包含特殊字符的 xml 示例?

标签: c# xml parsing xml-parsing


【解决方案1】:

使用 System.Security.SecurityElement.Escape 例如:string XmlFriendly = System.Security.SecurityElement.Escape("the bad 'string");

【讨论】:

    【解决方案2】:

    为什么不使用XmlTextReader?它应该处理所有的转义。

    【讨论】:

    • 我认为如果特殊字符没有被解析,XMLTextreader 会报错,但我用它来加载 SQL 表。
    【解决方案3】:

    如果我对问题的理解正确,您不是在尝试处理 XML 文件,而是在尝试处理非 XML 文件,如果特殊字符被正确转义,则该文件将是 XML 文件。

    所以问题是,这个非 XML 文件从何而来?因为修复它的最佳方法是修复创建它的过程。创建坏的 XML 然后修复它比一开始就创建好的 XML 要困难得多。

    【讨论】:

    • Michael 你说得对,如果删除特殊字符,文件不是 xml 文件将是 xml,我正在尝试找出处理这些特殊字符的最简单和最快的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2014-09-13
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多