【发布时间】:2013-02-21 09:36:03
【问题描述】:
我想阅读下面的 XML 并按以下顺序打印输出。可以帮忙查询如何绑定图片吗?
<?xml version="1.0" encoding="utf-8"?>
<Book>
<L1 id="100">
<Subjects>
<subject>
<thumb_image>
<image url= url="http://dev2.merceed.jpeg1"/>
<thumb_image>
</subject>
<subject>
<thumb_image>
<image url= url="http://dev2.merceed.jpeg2"/>
<thumb_image>
</subject>
<subject>
<thumb_image>
<image url= url="http://dev2.merceed.jpeg3"/>
<thumb_image>
</subject>
</Subjects>
</L1>
<L2 id="200">
<Subjects>
<subject>
<thumb_image>
<image url= url="http://dev2.merceed.jpeg"/1>
<thumb_image>
</subject>
<subject>
<thumb_image>
<image url= url="http://dev2.merceed.jpeg2"/>
<thumb_image>
</subject>
<subject>
<thumb_image>
<image url= url="http://dev2.merceed.jpeg2"/>
<thumb_image>
</subject>
</Subjects>
</L2>
<Book>
我想要像这样的输出
100
图片1
图片2
图片3
......
200
图片11
图片12
图片13
我正在使用我的代码
var query = from l in xmlDoc.Descendants("L1")
from subject in l.Descendants("Subjects")
select new Notch
{
name = (string)l.Attribute("id").Value,
SubjectName= l.subject("article").Select(a => (string)a.Attribute("SubjectName")).ToList(),
url = l.Element("article").Elements("thumb_image").Select(x => (string)x.Attribute("url")).ToString()
};
foreach (var result in query)
{
foreach (var titles in result.SubjectName)
{
Console.WriteLine(titles);
}
foreach (var image in category.Image)
{
Console.WriteLine(image);
}
}
【问题讨论】:
-
我想你打错了,你的
<Li id="200">元素在<Li id="100">里面,这是真的吗?subject元素也没有关闭... -
您的查询目前没有多大意义。 “文章”从何而来?
-
no no..,L1 是 header id
-
是的,正如 Ivan 所建议的,您可能忘记使用关闭
</Li>元素关闭您的<Li id="200">元素。另外,每个<Subject>元素都需要通过关闭</Subject>元素来关闭。如果它已经存在,请发布正确的 xml 示例。
标签: c# xml linq linq-to-xml