0

嗨,我有 xmlFile 如下所示。我的问题是我无法遍历所有节点。我尝试过类似的方法。但我认为这对我来说很难。我很困惑

           protected void Page_Load(object sender, System.EventArgs e)  
    {
        string xmlFile = Request.PhysicalApplicationPath + @"myxml.xml";  
        XmlReaderSettings settings = new XmlReaderSettings();  
        settings.IgnoreComments = true;  
        settings.IgnoreWhitespace = true;

        using (XmlReader reader = XmlReader.Create(Server.MapPath("myxml.xml"), settings)) {
            while (reader.Read()) {
                string xmlContent = "";
                if (reader.NodeType == XmlNodeType.Element && reader.Name == "Book") {

                    while (reader.NodeType != XmlNodeType.EndElement)
                    {
                        xmlContent += reader.ReadString().ToString();


                    }
                    Label1.Text = xmlContent;
                }

            }

        }

    }  

Myxml 文件是这样的

         <books>
               <book>
                   <id>1</id>
                     <name>Photodex ProShow: Visual QuickStart Guide</name>
                      <author>Jon Canfield</author>
                      <price>$29.99</price>
                      <type>Photoshop</type>
                 </book>

             </books>
4

1 回答 1

0

您可以使用 LINQ to XML,只需几行即可轻松获取 XML 文件中的所有元素,如下所示:

XDocument doc = XDocument.Load("PathOfYourXMLFile.xml");

var allElements = doc.Descendants();

注意:doc.Descendants()返回XElement对象的集合。

现在您可以获得每个元素的名称,如下所示:

foreach(XElement el in allElements)
{
    var theName = el.Name;
}

同样,您可以获取每个元素的值,如下所示:

foreach(XElement el in allElements)
{
    var theValue = el.Value;
}
于 2013-08-20T19:28:00.840 回答