Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
经典ASP-获取xml节点';s ResponseText中的值_Xml_Web Services_Xpath_Asp Classic_Nodes - Fatal编程技术网

经典ASP-获取xml节点';s ResponseText中的值

经典ASP-获取xml节点';s ResponseText中的值,xml,web-services,xpath,asp-classic,nodes,Xml,Web Services,Xpath,Asp Classic,Nodes,从经典ASP中,如何从ResponseText中获取特定xml节点的值,该文本采用xml格式,返回为string 代码: 现在,我需要获取名称节点值。也就是说,我需要在asp页面的下拉列表中绑定名称值。值为Name1、Name2、Name3、Name4、Name5、Name6 我尝试了以下代码来检索名称节点值 Response.Write(objXmlDoc.selectSingleNode("//Textbox/Name")) 但是,我无法检索名称节点值。指导我解决这个问题。谢谢。您的XML

从经典ASP中,如何从
ResponseText
中获取特定xml节点的值,该文本采用
xml
格式,返回为
string

代码:

现在,我需要获取名称
节点
值。也就是说,我需要在asp页面的下拉列表中绑定名称值。值为
Name1、Name2、Name3、Name4、Name5、Name6

我尝试了以下代码来检索名称
节点

Response.Write(objXmlDoc.selectSingleNode("//Textbox/Name"))
但是,我无法检索名称
节点
值。指导我解决这个问题。谢谢。

您的XML在根级别声明了默认名称空间:

xmlns="http://xxx.yyy.com/"
这使得所有元素都没有显式前缀,并且根的默认名称空间中没有更多的本地范围的默认名称空间。要访问命名空间中的元素,需要定义前缀,将其映射到命名空间uri,并在XPath中相应地使用该前缀,例如:

objXMLDoc.setProperty "SelectionNamespaces", "xmlns:d='http://xxx.yyy.com/'"

Response.Write(objXmlDoc.selectSingleNode("//d:Textbox/d:Name").text)

旁注:好吧,在格式良好的XML中,除了在XML的最开始处,不允许使用像
这样的处理指令。

我以前从未在另一个XML中见过
节点。事实上,即使首先列出
节点,如果前面有一个空格或空行,我也很难解析XML文档。我得到的实际
XML
没有一个空格或空行。为了清晰地呈现,我在这里格式化了
xml
code。关于如何获取
Name
node?的值有什么想法吗?。谢谢。我尝试了你的代码。我收到的错误消息是
响应对象错误'ASP 0185:80020003'缺少默认属性/samplesp.ASP,第0行找不到对象的默认属性。
Response.Write(objXmlDoc.selectSingleNode(//d:Textbox/d:Name”).text)
@SearchAndResQ,我添加了
.text
.text,但现在我收到的错误消息是
Microsoft VBScript运行时错误'800a01a8'所需对象:'[Object]'/samplesp.asp,第34行
。在错误消息中,第34行是
Response.Write(objXmlDoc.selectSingleNode(“//d:Textbox/d:Name”).text)
@JohnStephen。检查是否加载了xml,使用
objXmlDoc.parseerror.reason
查看在加载xml@JohnStephen如果确实是由于
标记而导致错误,那么可能需要首先替换有问题的
,然后试着继续使用这种方法,而不是像你的新问题那样,一路求助于正则表达式-
xmlns="http://xxx.yyy.com/"
objXMLDoc.setProperty "SelectionNamespaces", "xmlns:d='http://xxx.yyy.com/'"

Response.Write(objXmlDoc.selectSingleNode("//d:Textbox/d:Name").text)