如何从特定 asp.net 网络服务中获取元素标签名
How to getelementbytagname from specific asp.net web service
拜托,我在 PhoneGap 项目的 js 文件上使用 getElementsByTagName 命令时遇到了一个小问题。我正在使用完美运行的 asp.net Web 服务,但我未能得到 Web 服务正在 returning 我的结果,即来自 <IngresarRegistroMovilResult>
的 string
标签。
这是我接收网络服务的函数return:
function processResult() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var theXML = xmlhttp.responseXML.documentElement;
var resultadoWebService = theXML.getElementsByTagName('string')[0].firstChild.nodeValue;
var output = "Resultado: ";
output += resultadoWebService;
console.log("Pasamos por processResult, con var output:"+output);
document.getElementById("resultadows").innerHTML = output;
}
};
这是网络服务的规范:
POST /servicio.asmx HTTP/1.1
Host: dondeestamifamilia.masterdevelopment.co
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<IngresarRegistroMovil xmlns="http://dondeestamifamilia.masterdevelopment.co/">
<hashString>string</hashString>
</IngresarRegistroMovil>
</soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<IngresarRegistroMovilResponse xmlns="http://dondeestamifamilia.masterdevelopment.co/">
<IngresarRegistroMovilResult>string</IngresarRegistroMovilResult>
</IngresarRegistroMovilResponse>
</soap12:Body>
</soap12:Envelope>
这是IngresarRegistroMovil方法对应的片段,来自wsdl:
<s:element name="IngresarRegistroMovil">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="hashString" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="IngresarRegistroMovilResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="IngresarRegistroMovilResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
我试过了theXML.getElementsByTagName('string')[0].firstChild.nodeValue;
但我得到:Uncaught TypeError: Cannot read property 'firstChild' of undefined
。 theXML.getElementsByTagName('string')[0];
但我得到:undefined
。 theXML.getElementsByTagName('string')[0].nodeValue;
但我得到:Uncaught TypeError: Cannot read property 'nodeValue' of undefined
.
拜托,您的大力支持对我来说非常宝贵。
谢谢。
标记名是 IngresarRegistroMovilResult
而不是 string
,您可以通过 theXML.getElementsByTagName('IngresarRegistroMovilResult')[0].textContent
访问它(如果我没有输入错误)
使用 Web 服务的结果具有来自 Web 服务的 return 变量的值。也就是说,theXML.innerHTML包含C----O,即IngresarRegistroMovilResult的字符串值,扁平,无标签。那么,我得到的错误是试图通过标记名获取 return 值。
拜托,我在 PhoneGap 项目的 js 文件上使用 getElementsByTagName 命令时遇到了一个小问题。我正在使用完美运行的 asp.net Web 服务,但我未能得到 Web 服务正在 returning 我的结果,即来自 <IngresarRegistroMovilResult>
的 string
标签。
这是我接收网络服务的函数return:
function processResult() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var theXML = xmlhttp.responseXML.documentElement;
var resultadoWebService = theXML.getElementsByTagName('string')[0].firstChild.nodeValue;
var output = "Resultado: ";
output += resultadoWebService;
console.log("Pasamos por processResult, con var output:"+output);
document.getElementById("resultadows").innerHTML = output;
}
};
这是网络服务的规范:
POST /servicio.asmx HTTP/1.1
Host: dondeestamifamilia.masterdevelopment.co
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<IngresarRegistroMovil xmlns="http://dondeestamifamilia.masterdevelopment.co/">
<hashString>string</hashString>
</IngresarRegistroMovil>
</soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<IngresarRegistroMovilResponse xmlns="http://dondeestamifamilia.masterdevelopment.co/">
<IngresarRegistroMovilResult>string</IngresarRegistroMovilResult>
</IngresarRegistroMovilResponse>
</soap12:Body>
</soap12:Envelope>
这是IngresarRegistroMovil方法对应的片段,来自wsdl:
<s:element name="IngresarRegistroMovil">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="hashString" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="IngresarRegistroMovilResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="IngresarRegistroMovilResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
我试过了theXML.getElementsByTagName('string')[0].firstChild.nodeValue;
但我得到:Uncaught TypeError: Cannot read property 'firstChild' of undefined
。 theXML.getElementsByTagName('string')[0];
但我得到:undefined
。 theXML.getElementsByTagName('string')[0].nodeValue;
但我得到:Uncaught TypeError: Cannot read property 'nodeValue' of undefined
.
拜托,您的大力支持对我来说非常宝贵。
谢谢。
标记名是 IngresarRegistroMovilResult
而不是 string
,您可以通过 theXML.getElementsByTagName('IngresarRegistroMovilResult')[0].textContent
访问它(如果我没有输入错误)
使用 Web 服务的结果具有来自 Web 服务的 return 变量的值。也就是说,theXML.innerHTML包含C----O,即IngresarRegistroMovilResult的字符串值,扁平,无标签。那么,我得到的错误是试图通过标记名获取 return 值。