【问题标题】:fix and process badly formed XML in VB.net在 VB.net 中修复和处理格式错误的 XML
【发布时间】:2013-07-26 08:28:44
【问题描述】:

我收到了一些 XML 格式的错误数据,我想知道在 vb.net 中是否有任何方法可以通过 XML 数据的字符串并安全地清理我不断获取包含 ',<,>,& 内部属性的文件的任何垃圾数据价值观,并想知道如何才能最好地整理和整理格式不正确的 XML..

目前我只有一个函数,我不断添加字符串替换,但坏数据可能是随机的,可能需要一段时间才能意识到存在问题。

我想知道有没有一种方法可以在 reg-ex 中解决这个问题,或者 .NET 中是否有一个函数可以安全地将错误的 XML 转换为安全的 XML?

我知道最简单的解决方案是更改源代码,但这是不可能的,因为它来自封闭源代码的遗留系统。

谢谢马特

【问题讨论】:

    标签: xml regex vb.net


    【解决方案1】:

    当应用程序错误地生成 XML 时,最常见的错误可能是无法转义特殊字符,例如“

    未能在属性中转义 """ 可能特别难以修复,因为未转义的 """ 看起来像是属性值的结尾,并且导致的 XML 语法错误可能会在文件中稍晚一些.

    在大多数情况下,无法转义“&”或“

    更好的办法是回到向您发送这些垃圾并修复它的人那里。他们发这种垃圾不是在为任何人服务。

    【讨论】:

    • 我希望我能回去把它整理一下,这让我更加头疼,然后我才想起来
    【解决方案2】:

    您需要通过编写一个函数来清理您的输入,该函数通过迭代每个 char 来替换所有这些非 xml 支持的字符,并且如果 char 不属于相应 xml 实体的 字符之间。

    完整列表请见wiki

    替换这些字符后,您将获得一个有效的 xml,您可以使用任何 XML 解析器对其进行解析。

    【讨论】:

    • 对不起,我知道我需要替换非 xml 支持的字符,但是在一个字符串中,我怎样才能安全地删除 '<> 驻留在属性中的内容,并且不会弄乱'<> 的有效事件,例如属性和元素
    • 对不起 - 我只是错过了一个细节。更新了帖子。
    猜你喜欢
    • 1970-01-01
    • 2011-10-10
    • 2015-04-19
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    相关资源
    最近更新 更多