0

次の 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>

4

1 に答える 1

1

使用している言語については言及していませんが、プロファイルプロパティの名前、ChildNodesおよび角かっこではなく丸かっこでインデックスを付けていることに基づいて、VB.NETだと思いますか?

この状況は、空白を保持するドキュメントを使用している場合に発生する可能性があります。DOMパーサーはノードレベルで機能します。XMLの各コンポーネントはノードです。ChildNodesテキストノード、CDATAノード、要素ノードなどを設定できます。これらはプロパティによって取得され、子の数は異なります。

使用しているノードのノードタイプを確認してください。

要素をインデントしている場合、そのインデント(スペース、改行など)が最初の子になります。フォーマットを削除すると、最初の子は要素の子になります。

于 2012-05-27T15:20:05.767 に答える