.NET XMLNode 中的 FirstSibling 等价物是啥?

Posted

技术标签:

【中文标题】.NET XMLNode 中的 FirstSibling 等价物是啥?【英文标题】:What is the equivalent of FirstSibling in .NET XMLNode?.NET XMLNode 中的 FirstSibling 等价物是什么? 【发布时间】:2014-12-29 14:37:32 【问题描述】:

我在 xml 文档中有动态数量的 <image> 元素。当我到达这些元素的末尾时,我将再次将这些兄弟元素中的第一个的属性设置为 true。

我如何获得 FirstSibling 或类似的东西?

非动态但有效 parentNode.PreviousSibling.PreviousSibling.PreviousSibling.Attributes(0).Value = "true"

XML:

<imageConfig>
  <image active="false">
    <pathName>/Images/123.jpg</pathName>
    <imageStartTime>Mon Dec 29 09:34:35 EST 2014</imageStartTime>
  </image>
  <image active="false">
    <pathName>/Images/1234.jpg</pathName>
    <imageStartTime>Mon Dec 29 09:34:35 EST 2014</imageStartTime>
  </image>
  <image active="false">
    <pathName>/Images/12345.jpg</pathName>
    <imageStartTime>Mon Dec 29 09:34:35 EST 2014</imageStartTime>
  </image>
  <image active="false">
    <pathName>/Images/123456.jpg</pathName>
    <imageStartTime>Mon Dec 29 09:34:35 EST 2014</imageStartTime>
  </image>
  <image active="true">
    <pathName>/Images/1234567.jpg</pathName>
    <imageStartTime>Mon Dec 29 09:34:35 EST 2014</imageStartTime>
  </image>
</imageConfig>

【问题讨论】:

【参考方案1】:

将 XPath 与 preceding-sibling 轴一起使用:

Dim firstSibling As XmlNode = parentNode.SelectNodes("preceding-sibling::*")(0)

见Documentation

【讨论】:

此时应该 firstSibling.Attributes(0).Value = '' 工作吗? @JoJo,是的。我想是的。 Dim firstSibling As XmlNode 为必填项 对不起,我主要写 C#。已更新。

以上是关于.NET XMLNode 中的 FirstSibling 等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XmlNode() 作为 VB.NET 中 web 服务的结果?

使用具有多个条件的 XMLNode(.Net) 获取 XML 节点

c# .net 怎么将一个xml字符串 转换成一个xmlnode ,(不是xmldocument)

XmlNode和XmlElement区别

XmlNode与XmlElement的区别总结

比较 C 中的两个 XMLNode(libxml 库)