[英]Parsing XML with a Namespace in the root element in C#
由於根目錄中的“ xmlns”屬性,我無法在C#中解析以下XML。
<CaptureResponse xmlns="http://mws.amazonservices.com/schema/OffAmazonPayments/2013-01-01">
<CaptureResult>
<State>Open</State>
</CaptureResult>
</CaptureResponse>
例如,如何使用上述xml檢查C#中元素的存在? 以下不起作用。
XmlDocument doc = new XmlDocument();
doc.LoadXml(response);
if (doc.SelectSingleNode("CaptureResponse") != null)
{}
需要一個XmlNamespaceManager。 您創建一個並在XML文檔中添加對命名空間的引用。
AddNamespace()
的“ s”是名稱空間前綴的示例,可以在選擇查詢中使用它,而不必為每個節點添加完整的名稱空間作為前綴。 S可以替換為您希望使用的任何前綴。
XmlNamespaceManager nsMgr = new XmlNamespaceManager(doc.NameTable);
nsMgr.AddNamespace("s", "http://mws.amazonservices.com/schema/OffAmazonPayments/2013-01-01");
XmlNode myNode = doc.SelectSingleNode("s:CaptureResponse", nsMgr);
您的XPath模棱兩可。 嘗試這個:
XmlNode Root = doc.SelectSingleNode("/CaptureResponse");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.