0

我有一个返回 XMLDocument 的 ASP.NET Web 服务。使用 XMLHttpRequest 从 Firefox 扩展调用 Web 服务。

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

我使用 responseXML 使用结果。到目前为止,一切都很好。但是当我遍历 XML 时,我检索 nodeValue - nodeValue 始终为空。当我检查 nodeType 时,nodeType 是类型 1(Node.ELEMENT_NODE == 1)。

Node.NodeValue 声明 Element 类型的所有节点都将返回 null。

在我的网络服务中,我创建了一个带有 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.firstChild.nodeValue 而不是 node.nodeValue。

这是因为一个只包含文本的简单 XML 元素看起来应该具有其文本的值,但它实际上是一个具有单个子节点的元素。子节点是一个文本节点,它是具有值的文本节点。

于 2010-05-26T16:27:27.750 回答