【发布时间】:2012-12-11 18:31:52
【问题描述】:
更新
感谢 florent,我现在意识到我在问题中使用了错误的术语(最初是:'什么是未定义命名空间的 XML 文档的命名空间?')。
另外,我想现在我要问两个问题:
1. 可以为没有前缀的 XML 文档分配前缀吗? (可能是的,但是如何使用经典 ASP 做到这一点?)
2. XML 文档中没有定义前缀的节点的 XPath 位置路径是什么?如果这是可能的。
我有经典的 ASP 代码,它使用 MSXML2.ServerXMLHTTP.6.0 对象检索 XML 文档,但 XML 文档没有定义前缀。我无法更改 XML 文档的制作方式。
这就是 XML 的外观:
<?xml version="1.0" standalone="yes"?>
<SearchResultsResponse xmlns="http://openapi.somesite.com/openapi-3.0.0">
[...]
</SearchResultsResponse>
该文档会通过 .responseXML 属性自动解析和访问。但查找节点:
Set objData = obj_http.responseXML.selectSingleNode("//someNodeName")
Response.Write "Data: " & objData.Text
不起作用。 (我收到“需要对象”错误消息,表示未找到节点。)并且
Response.Write obj_http.responseXML.documentElement.prefix
给我一个空字符串。
完成这项工作的一种方法是使用.selectSingleNode("//*[local-name() = 'someNodeName']"),但我想这在较大的 XML 文档中效率不高。 (或者我错了吗?)
我读过类似:.selectSingleNode("//ns:rootNodeName/ns:childNodeName"),其中“ns”是定义的前缀,应该是要走的路,但是如果没有定义前缀,我应该使用什么前缀?
【问题讨论】:
标签: xml namespaces msxml serverxmlhttp