XmlElement HasChildNodes属性定义
本文关键字:定义 属性 HasChildNodes XmlElement | 更新日期: 2023-09-27 17:49:30
假设你有这样一个XML结构:
<Class>
<Worker>
<Name> Dan </Name>
<Phone> 123 </Phone>
<Class>
<Address>
<Street> yellow brick road </Street>
<Zip Code> 123456 </Zip Code>
</Address>
</Class>
</Worker>
</Class>
使用XMLElement
,我的问题是<Name>
元素的HasChildNodes
属性返回true,而我希望它返回false。
HasChildNodes
由我的定义应该是这样的:<Worker>
有孩子,<Address>
也,但<Street>
和<Name>
没有孩子,他们有一个值代替。
我如何区分这些情况?是否有另一种属性具有我所期望的行为?
这是因为Name
元素中的"Dan"值被视为子节点。
也许你可以测试XMLElement
是否只有XMLText
子,或者它是否没有XMLElement
子?
在DOM术语中,字符内容表示为文本节点,因此只有完全空的元素节点(<foo/>
或<bar></bar>
)才没有子节点。您必须检查所有的子节点,看看它们是否有XMLElement
。
下面是vb.net中的代码,用于检查节点是否实际上具有xml子元素
Function hasXmlChildElements(ByVal node As XmlNode) As Boolean
If node.HasChildNodes AndAlso node.ChildNodes.Count = 1 AndAlso node.FirstChild.GetType.Name.ToUpper = "XMLTEXT" Then
Return False
End If
Return node.HasChildNodes
End Function