-1

--二重ダッシュ( )を含む無効な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);
4

1 に答える 1

1

を使用する前XmlReaderに、xml ファイルを解析し、regexp を使用してコメントをフィルター処理します。

// using System.Text.RegularExpressions;
System.IO.StreamReader file= new System.IO.StreamReader(xmlDocFile);
string validXml = Regex.Replace(file.ReadToEnd(),"<!--.*?-->","");

XmlReader reader = XmlReader.Create(validXml);
于 2012-11-29T20:10:30.757 に答える