经典ASP-获取xml节点';s ResponseText中的值
从经典ASP中,如何从经典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
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)