【问题标题】:XML get data by element attrXML 通过元素属性获取数据
【发布时间】:2012-07-27 13:23:15
【问题描述】:

您好,我对 xml 解析有一些问题。所以 - 我想按数据从一些 xml 标签中读取数据。你能帮助我吗?这是我的代码。

    <data>
        <element name="name">Zook</element>
        <element name="image">img/icons/01/zook.png</element>
    </data>

和jquery

$(this).find("element").each(function(){
    var name = $(this).attr("name");
    $("#div").html('<span>' + name + '</span>')
});

【问题讨论】:

  • 目前发生了什么?
  • 在输出中我有名字或图像,没有 Zook 或 url
  • 已经编辑了我的答案,你能重组你的 XML 吗?

标签: jquery html xml parsing


【解决方案1】:

此示例代码将为您提取数据:

$.ajax({
   type: "GET",
   url: "path/to/your/xml.xml",
   dataType: "xml",
   success: function(xml){
   $(xml).find("element").each(function() {
          var name = $(this).find("name").text();
          var image = $(this).find("image").text();
          $("#div").html('<span>' + name + '</span>');
   });
});

您将需要重新构建您的 xml,因为目前元素具有双重含义。 将其简化,使您的数据如下所示:

<data>
  <element>
    <image>path/to/img.ext</image>
    <name>Name</name>
  </element>
</data>

希望对你有帮助

【讨论】:

    【解决方案2】:

    只要通过这个 Link 它解释了你需要的一切:)

    $(xml).find("element").each(function()
     {
       $("#output").append($(this).attr("name") + "<br />");
     });
    

    【讨论】:

    • 没有关于标签名解析的信息,只有标签
    • 同样,我有一个标签名称在输出没有数据
    【解决方案3】:
    var name = $(this).text();
    

    应该让你的生活更轻松

    【讨论】:

      【解决方案4】:
      $(xml).find("main_menu").each(function () {
          $(this).find("element").each(function(){
              var name = $(this).text();
              var image = $(this).text();
      
              $("#carousel_items").append('<span>' + name + '</span><span>' + image + '</span>')
          });
      });
      

      这就是我的代码现在的样子

      【讨论】:

        【解决方案5】:
        $(xml).find("main_menu").each(function () {
            var name, image;
        
            $(this).find("element").each(function() {
                // make sure they default to what they originally were if null
                // since one <element> has name other has image
                name = ($(this).attr('name')) ? $(this).text() : name;
                image = ($(this).attr('image')) ? $(this).text() : image;
            });
        
            // Build the items once you've looped through the elements within a <data> section
            $("#carousel_items").append('<span>' + name + '</span><span>' + image + '</span>')
        });
        

        【讨论】:

          猜你喜欢
          • 2022-01-15
          • 2014-12-01
          • 1970-01-01
          • 2016-02-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多