无法使用 jquery 获取 xml 元素文本值
Can't get xml element text value using jquery
我有一个返回xml响应的ajax调用。我想获取此响应中元素之一的值,即"某个名称"。问题是响应中有 5 或 6 个这样的标签。有没有办法只获得第一个的值?它始终是我想使用的第一个。以下是一些代码:
var xmlData = '<userId internalId="Some Number"xmlns:platformCore="urn:core_2013_1.platform.webservices.netsuite.com"><platformCore:name>Some Name</platformCore:name></userId>';
var $xml = $(xmlData);
var $user = $xml.find("platformCore:name").text();
alert($user);
我在这里还有一个js小提琴:http://jsfiddle.net/8FqRd/5/
编辑:修复以下内容:
我的 ajax 响应已经是 xml 格式,所以不需要解析。这行对我有用:
var user = $(xmlResponse).find("userId").find("name").text();
主jQuery函数不能正确解析XML:它将其视为HTML,并具有可变结果。请改用$.parseXML()
。
我不确定jQuery如何处理XML,特别是命名空间。我猜根本不会。但是,按本地名称而不是完全限定名称搜索元素似乎有效。
演示:http://jsfiddle.net/timdown/8FqRd/6/
var xmlData = '<userId internalId="Some Number"xmlns:platformCore="urn:core_2013_1.platform.webservices.netsuite.com"><platformCore:name>Some Name</platformCore:name></userId>';
var $xml = $( $.parseXML(xmlData) );
var $user = $xml.find("name").text();
alert($user);
正如 Tim 指出的那样,您需要使用$.parseXML(xmlData)
但是,由于您的 xml 标记中包含:
,因此您必须对其进行转义。
var xmlData = '<userId internalId="Some Number" xmlns:platformCore="urn:core_2013_1.platform.webservices.netsuite.com"><platformCore:name>Some Name</platformCore:name></userId>';
var xml = $.parseXML(xmlData);
var $xml = $(xml);
var $user = $xml.find("platformCore'':name").text(); // you need to escape the :
alert($user);
查看演示 http://jsfiddle.net/8FqRd/7/
相关文章:
- 使用Jquery添加XML元素
- 如何使用Extendscript scriptui插入、更新、删除XML元素的值
- 如何在IE上创建xml元素并添加nodeValue
- 从 XML 元素获取文本
- 无法使用 jquery 获取 xml 元素文本值
- 获取 XSLT 中的 XML 元素
- 如何使用 jquery 查找名称中带有“:”的 xml 元素
- 使用 jQuery 在 HTML 表中显示单独的 XML 元素
- 仅使用 JavaScript 查找具有给定属性值的 xml 元素的值
- 在节点.js中按类型和 ID 查找 XML 元素
- 测试 XML 元素是否存在时遇到问题
- jQuery嵌套的XML元素
- jQuery:添加XML元素
- 如何使JSONIX在反序列化时容忍额外的XML元素
- MSIE:将XML元素附加到HTML元素
- jquery ajax调用强制响应中的XML元素名称为小写
- 如何遍历xml元素在javascript中的直接子元素,保存特定属性的值
- Jquery改变"value"属性在XML元素中
- 值与XML元素匹配,然后返回所有兄弟属性值
- 如何在javascript中从xml字符串输出特定xml元素的所有值