标题基本上都说明了。
我正在使用eBay交易API,并尝试从用户发送的消息中提取文本。 API有点无用地返回大量HTML,其中包含ID为UserInputtedText
的div中的实际用户消息。
我正在尝试使用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()
......但似乎没什么用。
我或许应该注意到,我可以进入Text
节点,并且几乎可以在更复杂的多步骤过程中获取数据,但我觉得必须有一种更简单的方法。
事实上我现在注意到节点似乎包含了“并且还插入了一堆\ n换行符,这对我来说似乎很奇怪。任何人都可以解释为什么会这样吗?” p>
答案 0 :(得分:2)
您需要分两步解析它,因为XML包含HTML代码作为值。一旦解析了XML,HTML代码就只是文本,因此您无法使用选择器来查找其中的元素。
您将为XML文档创建一个jQuery对象来遍历它:
$xml = $($.parseXML(xmlresponse));
从Text
节点获取文本并将其从HTML代码转换为元素,然后您可以在其中找到元素:
var html = $xml.find("Message").find('Text').text();
$(html).find('#UserInputtedText').html()
答案 1 :(得分:0)
我不确定这是否可行,但您可以尝试获取节点的值,然后执行$(val).find(yourdiv)。虽然没有试过这个。