有一个xml文件,内容如下:<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<book1 id="aaa" name="111"></book1>
<book1 id="bbb" name="222"></book1>
<book1 id="ccc" name="333"></book1>
</book>
<ben>
<ben1>钢笔</ben1>
<ben1>铅笔</ben1>
<ben1>毛笔</ben1>
</ben>
</bookstore>我想获得book节点中的所有book1的id属性的值(有几个book1就获得几个id的值),即:aaa bbb ccc,然后将它们组合成一个字符串。用c#语言该怎样实现呢?

解决方案 »

  1.   

    HZWang :你的xpath获得的值是null呀
      

  2.   

      XmlDocument doc = new XmlDocument();
                doc.Load("xml path");
                XmlNodeList list = doc.SelectNodes("/bookstore/book/*");
      

  3.   

         XmlDocument doc = new XmlDocument();
                doc.Load("test.xml");
                XmlNodeList list = doc.SelectNodes("/bookstore/book/*");
                string id = string.Empty;
                foreach (XmlElement element in list)
                {
                    id = id +" "+ element.Attributes["id"].Value;
                }
      

  4.   

    XmlDocument doc = new XmlDocument(); 
    doc.Load(xmlfile); 
    XmlNodeList list = doc.SelectNodes("/bookstore/book/book1");
    foreach(XmlNode node in list)
    {
        Console.WriteLine(node.Attributes["id"].Value);
      

  5.   

    XmlNodeList xn = xm.SelectNodes("*//book1");
      

  6.   

    完善一下XmlDocument doc = new XmlDocument();
    doc.Load("e:\\1.xml");
    XmlNodeList list = doc.SelectNodes("/bookstore/book/book1[@id]");
    foreach (XmlNode node in list)
    {
        Console.WriteLine(node.Attributes["id"].Value);

    测试文件<?xml version="1.0" encoding="ISO-8859-1"?> 
    <bookstore> 
    <book> 
    <book1 id="aaa" name="111"> </book1> 
    <book1 id="bbb" name="222"> </book1> 
    <book1 id="ccc" name="333"> </book1> 
    <book1 name="444"> </book1> 
    </book> 
    <ben> 
    <ben1>1 </ben1> 
    <ben1>2 </ben1> 
    <ben1>3 </ben1> 
    </ben> 
    </bookstore> 
    注意:book1中不包含id属性的节点是不应该出来的~~~~
      

  7.   

    谢谢lovefootball 和ericzhangbo1982111 !