我从第三方得到一个
XML文件,我必须在我的应用程序中导入,而XML具有未转义和不可见的元素.在内部文本中,他们不会修复这个!所以我的问题是处理这个问题的最好办法是什么?
这个XML很大,而且修复必须要快,我的第一个解决方案就是替换&字符与&符号,但真的我不喜欢这个“解决方案”的明显的原因.我不知道如何使用XmlStringReader与这样的XML,因为抛出异常这样的行,所以我不能在内部文本使用HtmlEncode.我试图将XmlTextReader Settings.CheckCharacters设置为false但没有结果.
这是样本&是在元素中,在该领域可以是任何可以在某些公司名称,所以我的替换修补程序可能不适用于其他一些公司名称,我想使用HtmlEncode不知何故,但只有内部的文本当然.
<komitent ID="001398"> <sifra>001398</sifra> <redni_broj>001398</redni_broj> <naziv>LJUBICA & ŽARKO</naziv> <adresa1>Odvrtnica 27</adresa1> <adresa2></adresa2> <drzava>HRVATSKA</drzava> <grad>Zagreb</grad> </komitent>
下面的关键信息是,除非您知道输入文件的确切格式,并保证任何与XML的偏差一致,否则您无法以编程方式进行修复,而不会导致您的修订不正确.
原文链接:https://www.f2er.com/xml/292751.html通过替换&与& amp; amp;是一个可以接受的解决方案,当且仅当:
>这些数据没有可接受的良好的来源.
>作为@Darin Dimitrov评论,尝试找到一个更好的提供商,或者让该提供商修复它.
> JSON(例如)比较差的XML,比较好,即使你不使用javascript.
>这是一个一个(或至少非常罕见)导入.
>您可以继续重复,设计新的修补程序,为您遇到的每个问题添加一个解决方案.
>你可能会发现,一旦你有“固定”它,通过逃避&字符,会有其他错误.
>您有资源手动检查“固定”数据的完整性.
>“修复”的错误可能比您意识到的更微妙.
>文档中没有正确格式化的实体 –
>简单地替换&与& amp; amp;将错误地改变& quot;到& amp; amp.你可能可以解决这个问题,但是不要天真地说明它可能是多么棘手(实体可能在DTD中定义,可能指的是unicode代码点…)>如果它是一个特定的元素,那么你可以考虑使用<![CDATA]]>来包装元素的内容,但仍然依赖于你可以可靠地找到开始和结束标签.