我知道這個問題已被問過類似的方式,但我似乎無法得到這個工作。SelectSingleNode返回null - 即使與命名空間
我有一些XML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Research xmlns="http://www.rixml.org/2005/3/RIXML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" createDateTime="2011-03-29T15:41:48Z" language="eng" researchID="MusiJvs3008">
<Product productID="MusiJvs3008">
<StatusInfo currentStatusIndicator="Yes" statusDateTime="2011-03-29T15:41:48Z" statusType="Published" />
<Source>
<Organization type="SellSideFirm" primaryIndicator="Yes">
<OrganizationID idType="Reuters">9999</OrganizationID>
我試圖使用XPath讀取值:
XPathDocument xmldoc = new XPathDocument(xmlFile);
XPathNavigator nav = xmldoc.CreateNavigator();
XmlNamespaceManager nsMgr = new XmlNamespaceManager(nav.NameTable);
nsMgr.AddNamespace(string.Empty, "http://www.rixml.org/2005/3/RIXML");
XPathNavigator result = nav.SelectSingleNode("/Research", nsMgr); // <-- Returns null!
但即使是一個簡單的選擇根節點的返回null!我確定我的名字空間有問題。有人可以幫忙嗎?
理想我想簡單的線條,讓我從XML文件中選擇值,即
String a = xmlDoc.SelectSingleNode(@"/Research/Product/Content/Title").Value;
順便說一句,我沒有對XML文件的內容不(直接)的控制。
很好的答案,非常感謝您的幫助。我很想使用LINQ,但是我對調試的影響感到惱火,即任何對lamda表達式的改變意味着您必須重新啓動整個過程。再次感謝! Ryan – Ryan 2011-03-30 17:01:19
@Ryan:你在調試器中花了很多時間嗎?我很少使用編輯並繼續 - 我只是重新編譯並再次運行單元測試。 – 2011-03-30 17:04:10
永遠!我發現停止/啓動開發非常緩慢,特別是如果它是一個ASP應用程序。 – Ryan 2011-04-05 06:51:03