c# - 如何检查 XML 中是否存在特定属性?

标签 c# xml

部分XML内容:

<section name="Header">
  <placeholder name="HeaderPane"></placeholder>
</section>

<section name="Middle" split="20">
  <placeholder name="ContentLeft" ></placeholder>
  <placeholder name="ContentMiddle"></placeholder>
  <placeholder name="ContentRight"></placeholder>
</section>

<section name="Bottom">
  <placeholder name="BottomPane"></placeholder>
</section>

我想检查每个节点,如果属性 split 存在,尝试在变量中分配一个属性值。

在一个循环中,我尝试:

foreach (XmlNode xNode in nodeListName)
{
    if(xNode.ParentNode.Attributes["split"].Value != "")
    {
        parentSplit = xNode.ParentNode.Attributes["split"].Value;
    }
}

但如果条件只检查值,而不检查属性的存在,我就错了。我应该如何检查属性是否存在?

最佳答案

您实际上可以直接索引到 Attributes 集合(如果您使用的是 C# 而不是 VB):

foreach (XmlNode xNode in nodeListName)
{
  XmlNode parent = xNode.ParentNode;
  if (parent.Attributes != null
     && parent.Attributes["split"] != null)
  {
     parentSplit = parent.Attributes["split"].Value;
  }
}

关于c# - 如何检查 XML 中是否存在特定属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7186796/

相关文章:

c# - 单元测试应该在本地机器上运行吗?

c# - URL 编码引号和空格

c# - 如何选择当前选中项的DisplayMember或DisplayValue?

c# - 如何通过 ReflectionOnly 正确获取类型以供方法使用

c# - 为什么我不能对这个表达式使用三元运算符?

android - ScrollView 不能很好地与 RelativeLayout 一起玩

使用 Powershell 解析 XML

xml - 如何构造 XML 代码

java - Java中的XML节点到字符串

xml - Visual Studio - 注释掉 XML 的每一行