基本上都是这么说的。
我正在使用eBay交易API,并试图从用户发送的消息中提取文本。这个API在ID为UserInputtedText
的div中返回了大量带有实际用户消息的HTML。
我试图使用jQuery获取这些数据--原始的XML响应大致采用以下格式:
<XMLresponse>
<Messages>
<Message>
<Text>
"<!DOCTYPE html PUBLIC ...>\n\n\n<html ...>\n\n
<div id="UserInputtedText">
****MESSAGE FROM USER ****
所以我一直在尝试使用一些.
$xml = $.parseXML( xmlresponse )
$xml.find("Message").find('Text').find('UserInputtedText').html()
...but似乎什么都不起作用。
我也许应该注意到,我可以到达Text
节点本身,并且几乎肯定可以通过更复杂的多步骤过程获得数据,但是我觉得必须有一个更简单的方法。
事实上,我现在注意到,节点似乎已经将HTML封装在“并且还加上了一系列\n行分隔符,这在我看来很奇怪。有人能解释一下为什么吗?”
发布于 2015-04-01 09:23:56
您需要分两个步骤解析它,因为XML包含HTML代码作为一个值。一旦解析了XML,HTML代码就是文本,所以不能使用选择器来查找其中的元素。
您将为XML文档创建一个jQuery对象以遍历它:
$xml = $($.parseXML(xmlresponse));
从Text
节点获取文本并将其从HTML代码转换为元素,然后您可以在其中找到元素:
var html = $xml.find("Message").find('Text').text();
$(html).find('#UserInputtedText').html()
发布于 2015-04-01 09:18:47
我不确定这是否有效,但是您可以尝试获取节点的值,然后执行$(val).find(yourdiv)。不过还没试过呢。
https://stackoverflow.com/questions/29396578
复制相似问题