使用jQuery查找XML节点并使用其值

时间:2011-07-01 23:26:41

标签: javascript jquery xml search file-io

我正在使用这样的XML文件:

<Test>
    <Unit>
        <Title>Test 1</Title>
        <Date>01/07/2011</Date>
        <Content format="html"><![CDATA[Here goes some content]]></Content>
    </Unit>

    <Unit>
        <Title>Testing New XML</Title>
        <Date>27/06/2011</Date>
        <Content format="html"><![CDATA[Here goes some content]]></Content>
    </Unit>
    <!-- A lot of stuff like this -->
</Test>

我想使用jQuery在XML文档中搜索给定的<Title>并获取其整个<Unit>,因此我可以使用这样的值:

function append(title, date, content) {
    $("#Unit").append("<h1 id='title'><b>" + title + "</b></h1><h2 id='date'>" + date + "</h2><p>" + content + "</p>");
}

我该怎么做?

PS:我一直在使用this作为我的XML阅读基础

3 个答案:

答案 0 :(得分:4)

这是你要找的吗? Click Here(jsFiddle链接)

在该代码中,您必须首先获取XML并将其存储在变量中,就像我一样。代码可能不是您正在寻找的,但它可能是一个很好的起点。玩这些代码,让我知道这是否是您正在寻找的。

您也可以尝试这个(与jsFiddle链接相同的代码,但只使用警报而不是将数据附加到DOM)

var xml = "<Test><Unit><Title>Test 1</Title><Date>01/07/2011</Date><Content format='html'>some content here</Content></Unit><Unit><Title>Testing New XML</Title><Date>27/06/2011</Date><Content format='html'>some more content here</Content></Unit></Test>";

$(xml).find("Unit").each(function(){
    if($(this).find("Title").length > 0){
        var unitData = $(this).text();
        alert(unitData);
    }
});

这应该会给你两个警告。

答案 1 :(得分:2)

$("#Unit")选择ID为“unit”的所有元素。

要选择所有单位元素,请使用$("Unit")

编辑:如果变量中有Title元素,则可以使用$(myTestVariable).closest("Unit")

获取单位

答案 2 :(得分:1)

选择器#Unit查找id属性等于"Unit"的节点。

您需要选择器Unit,它会查找Unit个节点。