如何将XML值读入Javascript或jQuery

时间:2018-05-23 19:21:28

标签: javascript jquery html xml aem

我有一些我正在尝试用jQuery解析的XML,我怎样才能在任何选定的标签中获取值?我试图让“fn”的值显示到控制台中。

var fn = "";    
$.ajax({
    type: "GET",
    url: "xmldata.xml",
    dataType: "xml",
    success: function(xml) {
        $(xml).find('form1').each(function(){
            fn = $(this).find('fn').value();
            console.log(fn);            
        });
    }
});
console.log(fn);
<?xml version="1.0" encoding="UTF-8"?>
<afData>
    <afUnboundData>
        <data />
    </afUnboundData>
    <afBoundData>
        <xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/" timeStamp="2018-05-22T15:17:16Z" uuid="3cd001ed-7c9a-46f7-af5f-3b9e32b11578">
            <xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
                <xfa:data>
                    <form1>
                        <fn>John</fn>
                        <ln>Doe</ln>
                        <about>My name is John Doe</about>
                    </form1>
                </xfa:data>
            </xfa:datasets>
        </xdp:xdp>
    </afBoundData>
    <afSubmissionInfo>
        <lastFocusItem>guide[0].guide1[0].guideRootPanel[0].panel1[0]</lastFocusItem>
        <computedMetaInfo />
    </afSubmissionInfo>
</afData>

1 个答案:

答案 0 :(得分:1)

使用text()获取标记内的文字,value()用于表单控件值。

&#13;
&#13;
var fn = "";    
$.ajax({
    type: "GET",
    url: `data:text/xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3CafData%3E%0D%0A%20%20%20%20%3CafUnboundData%3E%0D%0A%20%20%20%20%20%20%20%20%3Cdata%20%2F%3E%0D%0A%20%20%20%20%3C%2FafUnboundData%3E%0D%0A%20%20%20%20%3CafBoundData%3E%0D%0A%20%20%20%20%20%20%20%20%3Cxdp%3Axdp%20xmlns%3Axdp%3D%22http%3A%2F%2Fns.adobe.com%2Fxdp%2F%22%20timeStamp%3D%222018-05-22T15%3A17%3A16Z%22%20uuid%3D%223cd001ed-7c9a-46f7-af5f-3b9e32b11578%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cxfa%3Adatasets%20xmlns%3Axfa%3D%22http%3A%2F%2Fwww.xfa.org%2Fschema%2Fxfa-data%2F1.0%2F%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cxfa%3Adata%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cform1%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cfn%3EJohn%3C%2Ffn%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cln%3EDoe%3C%2Fln%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cabout%3EMy%20name%20is%20John%20Doe%3C%2Fabout%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fform1%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fxfa%3Adata%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fxfa%3Adatasets%3E%0D%0A%20%20%20%20%20%20%20%20%3C%2Fxdp%3Axdp%3E%0D%0A%20%20%20%20%3C%2FafBoundData%3E%0D%0A%20%20%20%20%3CafSubmissionInfo%3E%0D%0A%20%20%20%20%20%20%20%20%3ClastFocusItem%3Eguide%5B0%5D.guide1%5B0%5D.guideRootPanel%5B0%5D.panel1%5B0%5D%3C%2FlastFocusItem%3E%0D%0A%20%20%20%20%20%20%20%20%3CcomputedMetaInfo%20%2F%3E%0D%0A%20%20%20%20%3C%2FafSubmissionInfo%3E%0D%0A%3C%2FafData%3E`,
    dataType: "xml",
    success: function(xml) {
        $(xml).find('form1').each(function(){
            fn = $(this).find('fn').text();
            console.log(fn);            
        });
    }
});
//console.log(fn);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;