【发布时间】:2012-07-04 20:21:56
【问题描述】:
我在 C# 中使用 XDocumentLinq-to-XML 解析以下 XML 时遇到问题:
<matches count="9">
<books count="4">
<book>
<key>books/batman_dark_knight_returns/frank_miller</key>
<title>Batman: The Dark Knight Returns</title>
</book>
...
</books>
<movies count="4">
<movie>
<key>movies/batman_tales_of_dark_knight/boy_kirklan</key>
<title>Batman: Tales of the Dark Knight</title>
</movie>
...
</movies>
<music count="1">
<album>
<key>music/dark_knight/hans_zimmer</key>
<title>The Dark Knight</title>
</album>
</music> </matches>
我非常非常错误的代码的 sn-p 是
var data = from query in xmlFeed.Descendants("books")
select new Book
{
Title = (string)query.Element("book").Element("title"),
count = (string)query.Element("stickers").Element("sticker").Element("count")
};
searchListBox.ItemsSource = data;
关于如何解析像这样的 xml 以返回可以绑定到列表框的长列表中的书籍、电影、电视节目的任何帮助?
谢谢
【问题讨论】:
-
目前还不清楚您要实现的目标。您希望结果是什么确切?单个
books元素是否有多个book元素?Book的count属性是什么意思?贴纸从何而来? -
@Jon 嗨 Jon 感谢您的回复。我正在使用的 api 根据搜索查询返回匹配项。计数是找到的对象的数量,可能是书籍、电影、录音艺术家等类型。因此,查询可以返回 9 个项目,由 4 本书、4 部电影和 1 位艺术家组成。我想在一个列表框中列出搜索结果。然后用户可以选择该项目以查看更多信息。
-
但是在您的示例代码中,您将
count分配为一本书的属性,这看起来确实不正确。请您看看我的回答并评论这是否解决了您的问题,如果不能解决您想要更改的内容?