Я пытаюсь выбрать конкретные значения в документе XML с помощью XPath. XML хранится в строковой переменной "tmp". Этот xml является результатом запроса, выполненного по внешнему API.
образец содержимого 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));
В теории я должен иметь возможность видеть значение отображения на странице внутри PlaceHolder с именем "AvailabilityCheckerResults2", но вместо этого я получаю сообщение об ошибке. Есть ли способ присвоить результаты из выражения xpath строковой переменной? Еще раз спасибо