2011-06-27 17 views
2

一部のノードで段落区切り文字が
というXMLドキュメントがあります。Xmlドキュメント、この文字をエスケープする

XmlDocumentオブジェクトにXMLを読み込むと、この文字は表示されません。代わりに私はスペースを参照してください。 &x2029を表示するにはどうすればよいですか?


XmlDocument doc = new XmlDocument(); 
doc.Load(xmlFilePath); 
XmlNodeList nodes = doc.SelectNodes("/catalog/classes"); 
foreach(XmlNode node in nodes) { 
    string category = node["category"]; 
    bool containerSeperator = category.Contains("
") // this should return true but it returns false. This category has a paragraph separator 
} 
+0

CDATAに包んでください。 –

+0

ソースXML文書を変更できません。 – mwok

+0

コードを投稿してください。 –

答えて

0

試験#1:

var xmlText = @"<Test>&amp;</Test>"; 
var xml = XDocument.Parse(xmlText); 
var result = xml.Element("Test").Value; 

result&amp;なくなり、その結果、"あろう。したがってContains("&amp;")は決して真実ではありません。

試験#2:XMLから読み出されたまさにあるx20x29

var xmlText = @"<Test>&#x2029;</Test>"; 
var xml = XDocument.Parse(xmlText); 
var result = Encoding.Unicode.GetBytes(xml.Element("Test").Value); 

結果は2つのバイトであろう。したがって、バイトはそこにあります。あなたはこのUnicode文字が読めないので、それらは見えません。

+0

XmlNodeList nodes = doc.SelectNodes( "/ catalog/classes"); foreachの(ノード内のXmlNodeノード) {Console.WriteLineを(ノード[ "CLASS_NAME"] +ノード[ "カテゴリ"])} 私はそれを用いxdocumentをどのように行うことができますか?私はXPathSelectElementsを使ってみましたが、xmlelementのリストを返しますか? – mwok

+1

@mwok - XMLのサンプルを表示できますか? –

+0

@mwok - 答えを更新しました。 –

関連する問題