依次获取xml中一个节点的各个属性值

解决方案 »

  1.   

    xpath中可以用 /html/body/div[@id='div1']/@*
    得到id为div1的div1元素的所有属性。xsl怎么写就不知道了。
      

  2.   


                string xmlString = @"<xml><book id=""aaaa"" name = ""bbbb"" author = ""cccc""></book></xml>";
                XDocument doc = XDocument.Parse(xmlString);
                foreach (var attr in doc.Root.Element("book").Attributes())
                {
                    Console.WriteLine(attr.Name + ":  " + attr.Value);
                }
      

  3.   

    【问题描述】
    <control>
    <Field/>//一个Filed对应一个row中的一个属性名
    <row/>//一个row中的每个属性名对应一个Field中的Name值。
    </control>
    依次获取row中属性的值输出?
    【方法】
    <xsl:value-of select="../row/@*[name()=$attr]"/>//attr为遍历Field获取的属性名
      

  4.   

    Menu.xml<boot>
    <menuItem a="a1" b="b1"  />
    <menuItem a="a2" b="b2"  />
    <menuItem a="a3" b="b3"  />
    </boot>try
            {
                string filename = Server.MapPath("~/Menu.xml");
                XmlDocument xmldoc = new XmlDocument();
                xmldoc.Load(filename);            //得到顶层节点列表
                XmlNodeList topM = xmldoc.DocumentElement.ChildNodes;
              
                    foreach (XmlElement element in topM)
                    {
                        element.Attributes["a"].Value 获取a结点的值
                        element.Attributes["b"].Value 获取b结点的值
                    }
                }