如何迭代到下一个同级xml元素
本文关键字:下一个 xml 元素 何迭代 迭代 | 更新日期: 2023-09-27 18:14:30
假设您有以下xml结构:
<root>
<File> a.txt
<Version> 1.5 </Version>
</File>
<File> b.txt
<Version> 1.0 </Version>
</File>
</root>
如果我保存一个包含元素的变量:
<File> a.txt
<Version> 1.5 </Version>
</File>
如何获得下一个元素的句柄,该元素是:
<File> b.txt
<Version> 1.0 </Version>
</File>
我一直在尝试一些事情,如XElement.nextNode()
,但得到null而不是一个合理的处理
您可以使用ElementsAfterSelf
:
var nextElement = currentElement.ElementsAfterSelf("File").FirstOrDefault();
if (nextElement != null)
{
...
}
或者,尝试重构您的代码,以便您可以在所有元素上使用循环,以:
开始:foreach (var fileElement in parentElement.Elements("File"))
{
...
}
(在这两种情况下,如果只需要下一个元素,则可以省略元素名称,无论它是什么。)
据我所知,您在这里提供的XML结构不是正确的或标准的结构。我可能错了,但这应该是这样的:
<root>
<File>
<Name>a.txt</Name>
<Version>1.5</Version>
</File>
<File>
<Name>b.txt</Name>
<Version>1.0</Version>
</File>
</root>
现在您可以使用Lambda表达式轻松地跟踪标签Name&Version的值
XDocument xd = XDocument.Load("XMLPath/xmlname.xml");
IEnumerable<XElement> lstxe = xdoc.XPathSelectElements("//root/File");
foreach(XElement xele in lstxe )
{
// here you can get the each value
}