2011-09-15 59 views
0

我有這樣一個XML文檔asp.net C#網絡器件的應用選擇多個值......這個XML文檔提供了網頁的XPath在xmldocument.selectnodes

<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> 

我想內容要根據網頁上ID和市場使用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搜索沒有問題,但增加第二個市場參數是困擾我...任何援助將是偉大的。

我會輸入什麼xpath來使用兩個參數我如何設置xml?

回答

0

您錯過了包含的關閉')'。

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())); 

有點幫助,當你需要尋找像失蹤括號輕微的語法錯誤。

+0

它的工作!我使用了你的String.Format版本,感謝你的快速響應......現在看起來很簡單:) – Ryan