[英]Select whitespace node with XPath in C#
我有以下代碼
var textReader = new StringReader("<root> </root>);
var settings = new XmlReaderSettings();
settings.IgnoreWhitespace = false;
var reader = XmlReader.Create(textReader, settings);
var doc = new XPathDocument(reader);
var nav = doc.CreateNavigator();
var ws = nav.SelectSingleNode("/root/text()");
注意我的根節點中的空格。
ws為空。 這是為什么 ?
我可以找到一些示例,其中多余的空白節點在查詢結果中蔓延開來,但我找不到其他方法。
謝謝
編輯:如果我的xml是
<root xml:space="preserve"> </root>
該查詢工作正常。 但是在這種情況下,節點的類型為SignificantWhitespace,而不是Whitespace
那些“哈哈”時刻之一...
XPathDocument具有一個帶有XmlSpace枚舉值的構造函數重載。 如果沒有提供XmlSpace值或XmlSpace,則XPathDocument將忽略不重要的空格節點。默認值若要選擇不重要的空格節點,您需要傳遞XmlSpace.Preserve。
參見: http : //timoch.com/blog/2013/05/xpathdocument-and-whitespaces/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.