如何检查 XmlAttributeCollection 中是不是存在属性?

Posted

技术标签:

【中文标题】如何检查 XmlAttributeCollection 中是不是存在属性?【英文标题】:How can I check if an attribute exist in XmlAttributeCollection?如何检查 XmlAttributeCollection 中是否存在属性? 【发布时间】:2011-11-16 13:02:01 【问题描述】:

我在 MSDN 上检查 XmlNode.Attributes topic 关于检查 XmlNode 是否存在给定名称的属性的方法。好吧,没有关于如何检查项目的示例。

我有类似的东西:

  //some code here...

  foreach (XmlNode node in n.SelectNodes("Cities/City"))
  
        //is there some method to check an attribute like
        bool isCapital = node.Attributes.Exist("IsCapital");

        //some code here...
  

那么,检查每个节点中是否存在属性的最佳方法是什么? 用node.Attribute["IsCapital"]!=null可以吗?

【问题讨论】:

【参考方案1】:

只使用索引器——如果属性不存在,索引器返回null

bool isCapital = nodes.Attributes["IsCapital"] != null;

这记录在XmlAttributeCollection.ItemOfProperty (String)

具有指定名称的XmlAttribute。如果该属性不存在,则该属性返回null

【讨论】:

似乎不适用于可以存在但未指定值的布尔属性。喜欢<myTag text="something" isChecked /> @Ivan - 您似乎在考虑 html,而不是 XML。 XML 不允许属性中没有值。 但是 XHTML 呢,@Oded?它不是意味着是有效的 XML,同时允许没有布尔值的属性吗?我实际上试图在我自己的 XML 中使用它来达到“debloat”的目的。 @Ivan - 不,XHTML 也必须是有效的 XML - 这就是它的全部意义所在。它不允许布尔属性。 为了实际使用,请记住XmlNode.Attributes属性可以为空。 nodes?.Attributes["IsCapital"] != null

以上是关于如何检查 XmlAttributeCollection 中是不是存在属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查元素是不是没有特定的类?

如何进行PYTHON语法检查

单击然后检查时如何设置字体真棒检查图标[关闭]

如何编写Windows安全检查脚本

如何检查网络关闭

如何检查 XmlAttributeCollection 中是不是存在属性?