使用Jquery查找XML元素值

使用Jquery查找XML元素值,jquery,xml,ajax,Jquery,Xml,Ajax,我有一个XML文件,需要使用Jquery和Ajax查找特定PK的项 到目前为止,我了解了对象,但我有两个问题: 有没有比循环找到pk值更好的方法 XML很大,我需要知道是否有比将其加载到内存更好的查询方法,XSLT是否有更好的帮助?还是说还有比jquery更好的方法 这是我的密码 $.ajax({ url: 'xml/products.xml', dataType: 'html', success: function(xml) { $(xml).find(

我有一个XML文件,需要使用Jquery和Ajax查找特定PK的项 到目前为止,我了解了对象,但我有两个问题:

  • 有没有比循环找到pk值更好的方法
  • XML很大,我需要知道是否有比将其加载到内存更好的查询方法,XSLT是否有更好的帮助?还是说还有比jquery更好的方法 这是我的密码

    $.ajax({
        url: 'xml/products.xml',
        dataType: 'html',
        success: function(xml) {
            $(xml).find('pk').each(function() {
                if ($(this).text() == "1")
                //do something
            });
        }
    });
    
    这是我的xml

    <products>
    <item>
        <pk>1</pk>
        <name>test</name>
    </item>
    <item>
        <pk>2</pk>
        <name>test2</name>
    </item>
    <item>
        <pk>3</pk>
        <name>test3</name>
    </item>
    <item>
        <pk>4</pk>
        <name>test4</name>
    </item>
    </products>
    
    
    1.
    测试
    2.
    测试2
    3.
    测试3
    4.
    测试4
    
    至少,您可以使用比“pk”更具体的查询。在本例中,
    $(xml).find(“products item pk”)
    应该更快。

    首先,您必须编写正确的xml字符串,就像您必须完成/结束上一个启动的相同标记一样。在上面的示例代码中,您在关闭时犯了错误。这是错误的xml语法。请更正如下: 1. 测试

    在这里,我使用示例bin来解析XML数据或标记,而不是Ajax,我只是在按钮单击事件上解析XML数据,因为在bin上Ajax调用不可能调用外部文件

    这里是演示:

    HTML

    <div>
      <input type="button" id="btnxml" value="Get XML Data" />
      <input type="button" id="btnreset" value="Reset" style="display:inline"/>
      <div id="result">
      </div>
    </div>
    <div id="xmldata">
      <products>
        <item>
          <pk>
            1
          </pk>
          <name>
            test
          </name>
        </item>
        <item>
          <pk>
            2
          </pk>
          <name>
            test2
          </name>
        </item>
        <item>
          <pk>
            3
          </pk>
          <name>
            test3
          </name>
        </item>
        <item>
          <pk>
            4
          </pk>
          <name>
            test4
          </name>
        </item>
      </products>
    </div>
    

    演示:

    我不确定为什么我觉得这个答案很好,但远远不是我想要的…我有外部xml文件,所以我确实需要单击ajax调用…我的问题是如何通过idHi获取特定节点,我修改了BIN和必要的更改,以便通过xml数据中的特定节点id查找Pk项。请点击下面的链接并检查它是否对您有用@gaurang171如果我们有多个标记名,如何获得这些标记的值?例如,如何获取每个的内部字符串值?id 1名称水果类别美国水果类别Yicon somsite.com/categories/1.jpg美国国家/地区
    $(function() {
        $("#btnxml").click(function() {
            var xml = "<rss version='2.0'>";
            xml += $("#xmldata").html();
            xml += "</rss>";
            var xmlDoc = $.parseXML(xml),
                $xml = $(xmlDoc);
    
            var result = "";
            if ($xml.find("item").length > 0) {
    
                result = "<table class='items'>";
                result += "<tr><th>PK</th><th>Name</th></tr>";
    
                $xml.find("item").each(function() {
                    result += "<tr>";
                    result += "<td>" + $(this).find("pk").text() + "</td>";
                    result += "<td>" + $(this).find("name").text() + "</td>";
                    result += "</tr>";
                });
    
                result += "</table>";
                $("#result").html(result);
            }
    
    
        });
    
        //Reset Result 
        $("#btnreset").click(function() {
            $("#result").html("");
        });
    
    });
    
    #xmldata{
      display:none;
    }
    table.items{
      margin-top:5px;
      border:1px solid #6655a8;
      background:#55a5d9;
      width:20%;
    }
    table.items th{
      border-bottom:1px solid #6655a8;
    }
    table.items td{
      text-align:center;
    }
    input[type=button]{
      border:1px solid #a588d9;
      background:#b788d9;
    }