jQuery 和 XML(带有 CDATA)

标签 jquery xml parsing cdata

我已经看过处理这个问题的帖子,但我仍然无法解决我的问题:

我有带有 CDATA 的 XML,当我解析 XML 时,它包含 CDATA(我不想要)。

XML 示例:

<mainnav>
    <nav path="/" xmlpath="home.xml" key="footer" navigator="">
        <display><![CDATA[Home]]></display>
        <title><![CDATA[Home]]></title>
    </nav>

    <nav path="/nav1/" xmlpath="nav1.xml" key="primary" navigator="primary" iconid="0">
        <display><![CDATA[Nav 1]]></display>
        <title><![CDATA[Nav 1]]></title>
        <overdesc><![CDATA[test nav 1]]></overdesc>

        <sub path="/nav1/sub1/" xmlpath="nav1/sub1.xml" key="sub">
            <display><![CDATA[sub 1<br />of nav 1]]></display>
            <title><![CDATA[sub 1<br />of nav 1]]></title>
        </sub>

    </nav>


    <nav path="/nav1/" xmlpath="nav2.xml" key="primary" navigator="primary" iconid="1">
        <display><![CDATA[Nav 2]]></display>
        <title><![CDATA[Nav 2]]></title>
        <overdesc><![CDATA[test nav 2]]></overdesc>

        <sub path="/nav2/sub1/" xmlpath="nabv2/sub1.xml" key="sub">
            <display><![CDATA[sub 1<br />of nav 2]]></display>
            <title><![CDATA[sub 1<br />of nav2]]></title>
        </sub>

    </nav>

</mainnav>

jQuery:

$(document).ready(function(){
$.ajax({
    type: "GET",
    url: "site_xml/config.xml",
    //contentType: "text/xml",
    dataType: ($.browser.msie) ? "xml" : "text/xml",
    success: parseXML,
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert(errorThrown);
    }
});});

function parseXML(xml) {
$(xml).find('nav').each(function(){
     if ($(this).attr("key")=="primary") { // this is a primary nav item;
        var title = $.trim( $(this).find('title').text() );
        alert(title);
        $("#output").append(title); //nothing showing up in my output DIV, presumably due to the CDATA tags?
     }
}); 

最佳答案

看起来在 nav 标签中有两个名为 title 的子标签。当你这样做时,你会回来:

$(this).find("title").text()

尝试使用:

$(this).find("title:first").text()

此外,删除条件:

dataType: ($.browser.msie) ? "xml" : "text/xml",

只需使用:

dataType: "xml",

关于jQuery 和 XML(带有 CDATA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2568443/

相关文章:

javascript - 在滚动期间预加载图像

javascript - 查找隐藏元素并将其存储在数组中

java - 使用 spring 4 将属性文件中的占位符替换为传递的 VM 参数(-D params)

python - HDI : write large string xml into file (python xml. dom.minidom)

javascript - 使用 jQuery 将选择框值设置为第一个选项

jquery - IE7 图像填充

parsing - ANTLR4:空白处理

python - 在 Python 2.4 中使用 urllib 解析查询字符串

java - XML 节点和子节点

php - 搜索引擎如何找到相关内容?