0

XMLDocument を返す ASP.NET Web サービスがあります。Web サービスは、XMLHttpRequest を使用して Firefox 拡張機能から呼び出されます。

var serviceRequest = new XMLHttpRequest();
serviecRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");

responseXML を使用して結果を消費します。ここまでは順調ですね。しかし、XML を反復処理すると、nodeValue が取得されます。nodeValue は常に null です。nodeType を確認すると、nodeType はタイプ 1 (Node.ELEMENT_NODE == 1) です。

Node.NodeValue は、Element 型のすべてのノードが null を返すことを示しています。

私のWebサービスでは、XMLで文字列を作成しました。xml="<Root><Book><Author>Hank</Author></Book></Root>"

次に、XmlDocument を作成します

XmlDocument doc = new XmlDocument();
doc.LoadXML(string);

CreateNode を使用してノードタイプを指定できることはわかっています。しかし、文字列値を追加してxmlを構築しているだけの場合、nodeTypeをTextに変更してNode.nodeValueを「テキストノードのコンテンツ」にする方法があります。

4

1 に答える 1

1

立ち止まってドキュメントを確認する必要がありました。

nodeValue は標準 DOM プロパティであり、nodeValue を返します。属性やテキストなどのノード タイプには値があります。要素には値がありません。子ノードのみがあります。

したがって、node.nodeValue ではなく、node.firstChild.nodeValue を呼び出す必要がありました。

これは、テキストのみを含む単純な XML 要素は、テキストの値を持つ必要があるように見えますが、実際には 1 つの子ノードを持つ要素であるためです。子ノードはテキスト ノードであり、値を持つテキスト ノードです。

于 2010-05-26T16:27:27.750 に答える