有如下XML:
<root>
  <books>
    <title>
      <FACT_ENG_NM>aa</FACT_ENG_NM>
    </title>
    <FACT_NM>11</FACT_NM>
    <FACT_NO>xx</FACT_NO>
  </books>
  <books>
    <title>
      <a>
        <FACT_ENG_NM>bb</FACT_ENG_NM>
      </a>
    </title>
    <FACT_NM>12</FACT_NM>
    <FACT_NO>yy</FACT_NO>
  </books>
</root>使用如下語句:
XmlNodeList xnl = xDoc.SelectNodes("/root/books");
for (int i = 0; i < xnl.Count; i++)
{
      Response.Write(xnl[i].SelectSingleNode("//FACT_ENG_NM").InnerText + "***<br>");
}問題:不明白為什麼顯示如下結果
aa***
aa***在語句不變的情況下可以通過修改xPath取到如下結果嗎?
aa***
bb***

解决方案 »

  1.   

     XmlNodeList xnl = _Document.SelectNodes("/root/books//FACT_ENG_NM");
                for (int i = 0; i < xnl.Count; i++)
                {               Response.Write(xnl[i].InnerText + "*** <br>"); 
                } 
      

  2.   

    謝謝,但是我必須分兩次提取資料.即必須是先選取"/root/books"再選取其中的FACT_ENG_NM.
      

  3.   

    试下:XmlNodeList xnl = xDoc.SelectNodes("/root/books[0]");可以看看这个
    http://www.w3school.com.cn/xpath/对于xml文件的处理使用序列化和反序列化会简单很多,建议看看
      

  4.   

    错了,XmlNode xnl = xDoc.SelectSingleNode("/root/books[0]");