如何從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