嗨,我有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>
答案 0 :(得分: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;
}