You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript或jQuery读取XML标签值?以获取fn节点值为例

解决jQuery解析XML获取标签值的问题

看了你的代码和XML结构,我发现几个需要调整的地方,帮你修正后就能正确获取标签的值了:

问题分析

  1. 错误的文本获取方法:你用了$(this).find('fn').value(),但jQuery对象没有value()方法——获取标签内的纯文本内容应该用text();只有表单元素(比如input)才用val()来取值。
  2. AJAX异步执行的问题:你在AJAX请求外面写的console.log(fn)会先于AJAX回调执行,此时fn还是初始的空字符串,所以必须把输出逻辑放在success回调内部。
  3. XML层级确认:你的XML里<form1>嵌套在<xfa:data>下,不过$(xml).find('form1')已经能正确定位到该元素,这部分没问题。

修正后的代码

var fn = "";
$.ajax({
    type: "GET",
    url: "xmldata.xml",
    dataType: "xml",
    success: function(xml) {
        // 遍历找到的form1元素
        $(xml).find('form1').each(function(){
            // 用text()获取fn标签的文本内容
            fn = $(this).find('fn').text();
            console.log(fn); // 这里输出能拿到正确的"John"
        });
        
        // 补充:如果XML里只有一个form1元素,不用each更简洁
        // fn = $(xml).find('form1 fn').text();
        // console.log(fn);
    },
    error: function(xhr, status, error) {
        // 加上错误处理,方便排查XML加载失败的问题
        console.error("XML加载失败:", error);
    }
});
// 这里的console.log(fn)会先执行,此时fn还是空值,不要在这里输出

你的XML结构(供参考)

<?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>

内容的提问来源于stack exchange,提问作者kwaxe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:56:19