/ / xpath в asp.net c # веб вибір аплікації декількох значень у xmldocument.selectnodes - xml, xpath

xpath в asp.net c # web appication вибір кількох значень в xmldocument.selectnodes - xml, xpath

У мене є XML-документ, подібний до цього ... цей документ XML надає вміст для веб-сторінок

<pages id="pages">
<page id="Shipping-Services">
<linktext>Shipping Services</linktext>
<pagelink>Shipping-Services</pagelink>
<content>Shipping Services</content>
<H1>Shipping Services</H1>
<LogoALT>Shipping Services</LogoALT>
<Title>Shipping Services</Title>
<Desc>Shipping Services</Desc>
<KeyWords>My, Key, Words</KeyWords>
<banner></banner>
<market>value</market>
</page>
</pages>

Я намагаюся шукати на основі ідентифікатора сторінки та ринку, використовуючи xmldocument.selectnodes

XmlDocument xdoc2 = new XmlDocument();
xdoc2.Load(Server.MapPath("~/xml/Pagesextend.xml"));
XmlNodeList xList2 = xdoc2.SelectNodes(".//*[@id="" + Request.QueryString[1].ToString() + ""]");

спробував це .... не працює

 XmlDocument xdoc = new XmlDocument();
xdoc.Load(Server.MapPath("~/xml/Pages.xml"));
XmlNodeList xList = xdoc.SelectNodes(".//*[@id="" + Request.QueryString["p"].ToString() + "" and contains(market, "" + Request.QueryString["m"].ToString() + ""]");

Я можу шукати по ID не проблема, але додавання другого параметра ринку є stumping мене ... Будь-яка допомога буде великим.

що xpath я повинен ввести, щоб використовувати два параметри, як я встановив XML?

Відповіді:

0 для відповіді № 1

Ви пропустили закриття ")" на місці.

XmlDocument xdoc = new XmlDocument();
xdoc.Load(Server.MapPath("~/xml/Pages.xml"));
XmlNodeList xList = xdoc.SelectNodes(".//*[@id="" + Request.QueryString["p"].ToString() + "" and contains(market, "" + Request.QueryString["m"].ToString() + "")]");

Зазвичай я вважаю за краще використовувати string.Format () для XPath:

XmlNodeList xList = xmlDoc.SelectNodes(string.Format(".//*[@id="{0}" and contains(market, "{1}")]", Request.QueryString["p"].ToString(), Request.QueryString["m"].ToString()));

Допомагає трохи, коли вам потрібно шукати незначні синтаксичні помилки, як відсутні дужки.