是否有一種簡單的方法來檢測XPathNavigator XML節點上是否存在空的屬性(例如<node>
與<node attribute="">
)? Node.GetAttribute
以任一方式返回空字符串。我唯一能想到的就是檢查Node.OuterXML
屬性,這看起來很愚蠢。使用XPathNavigator檢測是否存在空的XML節點屬性
(注:該節點將不會實際上是空的,所以我不能只用Node.HasAttributes
。)
是否有一種簡單的方法來檢測XPathNavigator XML節點上是否存在空的屬性(例如<node>
與<node attribute="">
)? Node.GetAttribute
以任一方式返回空字符串。我唯一能想到的就是檢查Node.OuterXML
屬性,這看起來很愚蠢。使用XPathNavigator檢測是否存在空的XML節點屬性
(注:該節點將不會實際上是空的,所以我不能只用Node.HasAttributes
。)
您可以使用XPath:如果
elem.SelectSingleNode("@attribute")
這將返回null
, attribute
並不存在,另一個XPathNavigator
與NodeType
的Attribute
和Value
包含一個空字符串,如果該屬性存在,但是爲空。
這正是我所期待的。謝謝! – RobinHood70 2011-06-15 00:11:38
如果可能,我會建議使用LINQ to XML。 – svick 2011-06-14 22:59:23
這可能是可行的,但是在項目的早期階段測試LINQ時,與直接解析XML相比,我發現它增加了很多開銷。不過,在某些情況下它確實很有用,所以我可以再仔細研究一下。 – RobinHood70 2011-06-15 00:14:40
我不明白,使用LINQ to XML,「只是直接解析XML」,它只是不同的API(和恕我直言,更好的一個)。我不知道爲什麼會造成性能開銷。如果你將它與諸如'XmlReader'之類的東西進行比較,那就不一樣了,但你不是。 – svick 2011-06-16 22:09:51