27

基本的に SOAP Web サービスの XML 結果である DomDocument を処理しています。ざっくり言うとこんな感じです

...<ParentNode><ChildNode>&lt;output&gt;&lt;escaped&lt;string</ChildNode></ParentNode>...

はい、ChildNode の値は出力エスケープされた文字列であり、この XML 内にパックされた XML です。次のようなDomDocument処理の通常の実行を行います

NodeList rows = dom.getElementsByTagName(ChildNode);
for(int i=0;i<rows.length;i++)
{
  System.out.println(rows[i].getParentNode()); // returns ParentNode
  System.out.println(rows[i].getNodeName()); // returns ChildNode
  System.out.println(rows[i].getNodeValue()); // returns null
}

上記のコードを調べると、ノードが ParentNode および NodeName ノードに対して正しい値を返す場合でも、getNodeValue() にアクセスすると null 値が返されることがわかります。ここに文字列があり、コンソール出力で確認できます。しかし、ここでどのトリックが欠けているのかわかりません。出力エスケープが特定の方法でそれを台無しにしますか?

ありがとう、パリジャット

4

2 に答える 2

59

あなたが望むのgetTextContent()ではなくgetNodeValue()- 後者は要素ノードに対して常に null を返します。

于 2012-09-13T20:31:07.000 に答える