拥有一个具有以下结构的XML文件。
<books>
<myonlystore>
<book1>
<author>Book1 author</author>
<title>Book1 Title</title>
</book1>
<book2>
<author>Book2 author</author>
<title>Book2 Title</title>
</book2>
<book3>
<author>Book3 author</author>
<title>Book3 Title</title>
<ISBN>12345</ISBN>
</book3>
</myonlystore>
</books>
试图将book1,book2和book3放入列表框中,并在选择时显示各自的可用属性。但是与XML结构混淆了。请告知如何正确阅读此文件。
谢谢
您可以像这样使用XDocument:
var result = XDocument.Parse(xml).Root
.Descendants().Where(n => n.Name.LocalName.StartsWith("book"))
.Select(b => new
{
Author = (string) b.Element("author"),
Title = (string) b.Element("title"),
Isbn = (string) b.Element("ISBN")
});
更新:
var result = XDocument.Parse(xml).Root.Element("myonlystore")
.Elements()
.Select(b => new
{
Author = (string) b.Element("author"),
Title = (string) b.Element("title"),
Isbn = (string) b.Element("ISBN")
});
如果使用<store> <books>
类别引用您的XML文件将更好地组织,因此根据下面的代码列出商店中的所有书籍很简单。
XML文件:
<myonlystore>
<books>
<author>Book1 author</author>
<title>Book1 Title</title>
</books>
<books>
<author>Book2 author</author>
<title>Book2 Title</title>
</books>
<books>
<author>Book3 author</author>
<title>Book3 Title</title>
<ISBN>12345</ISBN>
</books>
</myonlystore>
以及读取XML文件的代码:
public static void ReadXmlFile1()
{
String path = $@"{desk}\xmlfile.xml";
XDocument doc = XDocument.Parse(XDocument.Load(path).ToString());
foreach (XElement element in doc.Descendants("books"))
{
Console.WriteLine(element.Element("author").Value);
Console.WriteLine(element.Element("title").Value);
Console.WriteLine("-----------------");
}
}