我有以下XML:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<MessageRequest></MessageRequest>
</SOAP-ENV:Envelope>
我正在访问子元素的名称,如下所示:
childNode(SOAP-ENV:Body").ChildNodes(0).Name
,但如果元素之间有空格,则子节点名称返回"\n "
,但如果删除空格,则会获得正确的子节点,例如,如果有空格在<SOAP-ENV:Body>
和<MessageRequest>
之间,第一个孩子将返回"\n "
,但如果没有空格,则会返回<MessageRequest>
答案 0 :(得分:1)
你没有提到你正在使用的语言,但基于your profile,name of the ChildNodes
property并使用圆括号而不是方括号编制索引,我认为是VB.NET?
如果您使用preserves white space的文档,则可能会发生这种情况。 DOM解析器在节点级别工作。 XML的每个组件都是一个节点。您可以拥有文本节点,CDATA节点,元素节点等。ChildNodes
属性将获取这些节点,并且子节点数会有所不同。
检查您正在使用的节点the node types。
如果你有缩进元素,那么缩进(空格,换行等)就成了第一个孩子。删除格式,第一个孩子应该是元素子。