由于xml标记中的特殊字符,tcl tdom解析失败

时间:2015-06-15 12:04:34

标签: xml tcl tdom

我正在尝试删除XML标签中存在的一些特殊字符,我们可以使用一些regsubs或字符串映射函数来消除标记文本中的XML特殊字符,但这是一个冗长/耗时的过程因为我们的日志文件非常大约25 MB左右。

是否有任何特殊方法/提示可以消除XML标记中的特殊字符

这是一个类似

的示例
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Customers>
    <Customer>
        <CustomerID>BLAUS</CustomerID>
        <CompanyName>Blauer See Delikatessen</CompanyName>
        <ContactName>Hanna Moos</ContactName>
        **<Region>test<ing</Region>**
    </Customer>
    <Customer>
        <CustomerID>SPLIR</CustomerID>
        <CompanyName>Split Rail Beer & Ale</CompanyName>
        <ContactName>Art raunschweiger</ContactName>
        <Region>WY</Region>
    </Customer>
</Customers>

由于 Malli

1 个答案:

答案 0 :(得分:2)

如果您指的是&符号,则它不在标记中,它出现在两个标记之间的文本中。

人们选择使用XML进行数据交换的原因在于它是一个标准,并且有很多软件可以处理它。如果你试图使用几乎是XML但不完全的东西,那么这种优势就会完全消失。

到目前为止,最好的解决方案是修复生成这个不太完整的XML的程序。

如果你真的不能这样做,你就必须尝试修复它,这样做的方式取决于伤害的性质。例如,您可以使用支持正则表达式的任何语言来替换任何字符序列中的&符号,其中&符号后面跟着&#39;#&#39;或者是一系列字母数字,然后是分号,"&amp;"。但是,如果数据包含此错误,则表示它是不小心生成的,因此它也可能包含任意数量的其他错误。