如何从xml文件中删除包含双破折号(--
)的无效xml注释?用双破折号从XML文件中删除注释 -
我试图加载xml文件,但它是失败的。这些评论使xml无效。 xml来自供应商。
我试图根据其他帖子的方法删除这些,但我没有成功。这里是XML的例子:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--MAIN VARIABLES-->
<content type="screwed">
<!--KEEP 19-39 -- SEE HELP.TXT AND THE VIDEO TUTORIALS FOR MORE INFO -->
<!--REGULAR/NON-Regular EXAMPLE --><SomeTag somefile="test.txt3" Name="test"/>
<!-- -->
</content>
我曾尝试没有成功如下:
string xmlDocFile = "c:\server\test.xml";
XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.IgnoreComments = true;
readerSettings.ProhibitDtd = false;
readerSettings.ValidationType = ValidationType.DTD;
XmlReader reader = XmlReader.Create(xmlDocFile, readerSettings);
XmlDocument myXmlDoc = new XmlDocument();
myXmlDoc.Load(reader);
myXmlDoc.Save(xmlDocFile);
正如您指出这是无效的XML,所以设计用于处理XML的任何内容都将很难实现。如果您可以返回供应商并让他们知道他们的数据无法正常工作。如果这不是一个选项,你需要把它看成是一个文本文件,并使用正则表达式去除注释(或所有注释)之间的双破折号,然后像正常一样使用XML。有关如何做到这一点的更多信息,请参阅http://stackoverflow.com/questions/1304052/c-sharp-how-to-delete-xml-html-comments-with-regular-expression。 – JohnLBevan