当XML文档中有空格时,XML元素的子元素是“\ n”?

时间:2012-05-23 05:50:06

标签: xml vb.net soap

我有以下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>

1 个答案:

答案 0 :(得分:1)

你没有提到你正在使用的语言,但基于your profilename of the ChildNodes property并使用圆括号而不是方括号编制索引,我认为是VB.NET?

如果您使用preserves white space的文档,则可能会发生这种情况。 DOM解析器在节点级别工作。 XML的每个组件都是一个节点。您可以拥有文本节点,CDATA节点,元素节点等。ChildNodes属性将获取这些节点,并且子节点数会有所不同。

检查您正在使用的节点the node types

如果你有缩进元素,那么缩进(空格,换行等)就成了第一个孩子。删除格式,第一个孩子应该是元素子。