更新
感谢 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' 是定义的前缀,应该是要走的路,但是如果没有定义前缀,我应该使用什么?