如何使用jquery在XML标记中引用特定的DIV标记?

时间:2015-04-01 16:57:50

标签: jquery html xml ebay

标题基本上都说明了。

我正在使用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>

2 个答案:

答案 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)。虽然没有试过这个。

相关问题