【问题标题】:How to count elements in xml tag如何计算xml标签中的元素
【发布时间】:2012-08-02 09:19:58
【问题描述】:

我的脚本有一个小问题,我被卡住了……我需要计算我的 xml 主标签中的元素,而与它们的名称无关。你能告诉我怎么做吗?

$.ajax({
    type:"GET",
    url:"../amica_programator/data/content_data.xml",
    dataType:"xml",
    success: function(xml) {
            var class_main_content = $('.main_content ul').attr('class');
            var xml_element_name = $(xml).find(class_main_content)[0].nodeName.toLowerCase();
            if ((class_main_content) == xml_element_name){
                var n_elements = $(xml).find(xml_element_name).find("element").size();
                alert(n_elements);
            }

【问题讨论】:

    标签: jquery xml parsing


    【解决方案1】:

    如果您的 XML 数据不是 XMLDocument,首先您应该使用 $.parseXML() 解析它。之后,您可以使用简单的选择器来查找元素的数量。这是example

    var xml = '<root><tag_01><element></element><element></element><element></element></tag_01><tag_02><element></element><element></element></tag_02></root>',
        xmlDoc = $.parseXML(xml)
        $xml = $(xmlDoc),
        tagName01 = 'tag01',
        tagName02 = 'tag02';
    alert('total <element> count: ' + $xml.find('element').size());
    alert('total <tag_01 > element> count: ' + $xml.find(tagName01 + ' > element').size());
    alert('total <tag_02 > element> count: ' + $xml.find(tagName02 + ' > element').size());
    

    ps:我必须添加 &lt;root&gt; 才能使 XML 有效。

    【讨论】:

    • 好的,但我需要计算选择标签中的元素,我将它们与html中的一些列表类进行比较......我的代码如下
    • 我已经给你基本的了,剩下的就靠你了。
    【解决方案2】:
    $('*') 
          .filter(function() { 
              return this.nodeName.toLowerCase().match(/tag_*/); 
          }).each(function(){
              alert($(this).find('element').size());
          });
    

    试试这个JsFiddle

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 2018-02-18
      相关资源
      最近更新 更多