首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用jquery获取xml元素文本值

无法使用jquery获取xml元素文本值
EN

Stack Overflow用户
提问于 2013-10-29 22:02:04
回答 2查看 1.5K关注 0票数 1

我有一个返回xml响应的ajax调用。我想要获取此响应中的一个元素的值,即‘某个名称’。问题是在响应中有5到6个这样的标签。有没有办法只得到第一个值呢?它总是我想要使用的第一个。以下是部分代码:

代码语言:javascript
复制
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格式,所以不需要解析。这句话对我很管用:

代码语言:javascript
复制
var user = $(xmlResponse).find("userId").find("name").text();
EN

回答 2

Stack Overflow用户

发布于 2013-10-29 22:03:46

主jQuery函数不能正确解析XML :它将其视为具有可变结果的HTML。请改用$.parseXML()

我不确定jQuery是如何处理XML的,尤其是名称空间。我猜一点也不会。但是,按本地名称而不是完全限定名称搜索元素似乎是可行的。

演示:http://jsfiddle.net/timdown/8FqRd/6/

代码语言:javascript
复制
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);
票数 0
EN

Stack Overflow用户

发布于 2013-10-29 22:14:07

正如蒂姆指出的那样,您需要使用$.parseXML(xmlData)

但是,由于您的xml标记中有一个:,因此您必须对其进行转义。

代码语言:javascript
复制
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/上的演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19660391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档