如何通過內部文本檢索xml文檔中的節點。例如 通過xml文檔中的內部文本找到xml節點
<w:t>WARNING</w:t>
節點由xml文檔中的不同值組成多次。 我想只檢索那些內部文本包含「WARNING」的w:t節點。
怎麼辦?
如何通過內部文本檢索xml文檔中的節點。例如 通過xml文檔中的內部文本找到xml節點
<w:t>WARNING</w:t>
節點由xml文檔中的不同值組成多次。 我想只檢索那些內部文本包含「WARNING」的w:t節點。
怎麼辦?
要查詢前綴必須使用XmlNamespaceManager
註冊適當的前綴到命名空間URI的映射元素,然後用它在你的XPath註冊的前綴,例如:
var xml = @"<root xmlns:w=""test"">
<w:t>WARNING</w:t>
</root>";
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
var nsManager = new XmlNamespaceManager(xmlDoc.NameTable);
//register proper prefix-to-namespace-URI mapping
nsManager.AddNamespace("w", "test");
//following XPath used to select <w:t> nodes with inner text contains "WARNING"
var result = xmlDoc.DocumentElement.SelectSingleNode("//w:t[contains(., 'WARNING')]", nsManager);
//print result
Console.WriteLine(result.OuterXml);
試試這個:
var wtNodes = elements.Where(e => e.Name.LocalName.Equals("w:t"));
var warningNodes = wtNodes.Where(node => node.Value.Contains("WARNING"));
試試這個:
xmlNodeList xNlist= xDoc.selectNodes("//pre:t[.="WARNING"]",objXmlnsMgr);
這裏: xDoc是XmlDocument; objXmlnsMgr是XmlNamespaceManager('w'在你的情況下)& pre是它的前綴。
你到目前爲止做了什麼 –