我想從使用XPath的xml文檔中選擇特定的值。 xml存儲在一個字符串varibale「tmp」中。這個XML是在外部API上執行查詢的結果。使用XPATH從XML文檔中選擇特定值?
示例XML內容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Results>
<Checks>
<Check id="wbc">
<Linespeed>6000 </Linespeed>
<Provider>BT WBC </Provider>
</Check>
<Check id="adsl">
<Linespeed>2048 </Linespeed>
<Provider>BT ADSL </Provider>
</Check>
</Checks>
</Results>
在代碼中使用XPath後面我希望能夠選擇在供以後使用字符串變量<Linespeed>
和<Provider>
僅供id=adsl
,然後存儲值。我想在不使用單獨的xslt樣式表的情況下實現這一點。任何援助對此將不勝感激!
在此先感謝
感謝大家的幫助下,使用XPath表達式我現在想真正把它用如下:
//Creating an XPATH epression
String strExpression1;
strExpression1 = "Results/Checks/Check[@id = 'adsl']/Linespeed";
//Loading the xml document
XmlDocument doc;
doc = new XmlDocument();
doc.LoadXml(tmp);
//Create an XmlNamespaceManager to resolve the default namespace.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("bk", "urn:schemas-microsoft-com:xslt");
//Selecting Linespeed from Check id='adsl'
XmlNode Check;
XmlElement root = doc.DocumentElement;
Check = root.SelectSingleNode(strExpression1, nsmgr);
//Assigning the the results of the XPATH expression to the string variable Linespeedval
string Linespeedval = Check.ToString();
//Adding a control to display the xpath results of the xml query
AvailabilityCheckerResults2.Controls.Add(new
LiteralControl(Linespeedval));
理論上我應該能看到顯示在名爲「AvailabilityCheckerResults2」的PlaceHolder內部頁面上的值,但是我得到一個錯誤。有沒有辦法將xpath表達式的結果賦值給一個字符串變量?再次感謝
[?你嘗試過什麼(HTTP ://mattgemmell.com/2008/12/08/what-have-you-tried/) –