gpt4 book ai didi

c# - 使用 LINQ 从 XML 中选择后代节点和元素

转载 作者:数据小太阳 更新时间:2023-10-29 02:44:04 25 4
gpt4 key购买 nike

我有一个这样的 XML 文件:

<BRPlugins>
<Plugin name="aaaa">
<summary>ssss</summary>
<description>dddd</description>
<category>cccc</category>
<product>pppp</product>
<gallery>
<media type="picture" url="http://linktofolder/image.jpg">
</media>
<media type="picture" url="http://linktofolder/image.jpg">
</media>
<media type="video" url="http://linktofolder/video.avi">
</media>
</gallery>
<Installers>
<Release version="1234" status="production">
<Installer url="http://linktofolder/installer1.exe"/>
<Installer url="http://linktofolder/installer2.exe"/>
<Installer url="http://linktofolder/installer3.exe"/>
</Release>
<Release version="4567" status="production">
<Installer url="http://linktofolder/installer4.exe"/>
<Installer url="http://linktofolder/installer5.exe"/>
<Installer url="http://linktofolder/installer6.exe"/>/>
</Release>
</Plugin>
</Plugins>

我正在使用 XDocument 读取 XML 并创建 HTML:

XDocument xmlDoc = XDocument.Load(Server.MapPath("Plugins.xml"));
foreach (XElement product in xmlDoc.Root.Nodes())
{
counter++;
div += "<div class='col-plugin-item alt" + counter + "'><a href='javascript:void(0)' class='name' id='box" + counter + "'>" + product.Attribute("name").Value + "</a></div>";
}
testediv.InnerHtml = div;

我需要能够从媒体和安装程序访问元素“url”,以及从发行版访问版本和状态。我尝试了以下但它不起作用:

var childElements = xmlDoc.Descendants("gallery").Elements("media");

foreach (XElement en in childElements)
{
div += "Descendents: " + en.Attributes("url");
}
testediv.InnerHtml = div;

谢谢!!!

最佳答案

当您调用 Attributes("url") 时,您实际上是在创建一个集合,即使只有一个元素。像这样的东西应该会更好:

div += "Descendents: " + en.Attributes("url").First().Value;

关于c# - 使用 LINQ 从 XML 中选择后代节点和元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41349808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com