具有以下结构的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结构混淆了。请告知如何正确读取此文件。
谢谢
答案 0 :(得分:1)
您可以像这样使用XDocumnet:
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")
});
答案 1 :(得分:0)
如果用<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("-----------------");
}
}