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

由于xml标记中的特殊字符,tcl tdom分析失败,xml,tcl,tdom,Xml,Tcl,Tdom,我正在尝试删除XML标记中存在的一些特殊字符,我们可以使用一些regsubs或字符串映射函数来消除标记文本中的XML特殊字符,但这是一个冗长/耗时的过程,因为我们的日志文件非常大,大约为25 MB 是否有任何特殊的方法/技巧来消除XML标记中的特殊字符 这是一个看起来像 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <Customers> <Customer> <C

我正在尝试删除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>

布拉斯
布劳尔·西德利卡泰森
汉娜·莫斯

**test如果您指的是与,则它不在标记中,而是在两个标记之间出现的文本中

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

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


如果你真的做不到,你必须试着修复它,而修复的方法取决于损坏的性质。例如,您可以使用支持正则表达式的任何语言来替换任何字符序列中的“与”,其中“与”后面不跟“#”或字母数字序列,然后是分号,后面是
“&;”
。但是,如果数据包含此错误,则意味着它是不小心生成的,因此它也可能包含任意数量的其他错误。

能否修复生成此无效XML的进程?看起来有人正在生成“XML”通过使用简单的模板替换,而无需注意转义其中的关键实体。那太糟糕了。