如何从Perl的xml中获取所需的元素?

文卡特山

我希望perl中的方法可以执行以下操作示例xml文件

<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/> First Country
    </country>
    <country name="Singapore">
        <rank>4</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/> Second Country
    </country>
    <country name="Panama">
        <rank>68</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/> Third Country
    </country>
</data>

当我输入Elment等级作为输入时,输出应如下所示。

<?xml version="1.0"?>
    <data>
        <country name="Liechtenstein">
            <rank>1</rank>
        </country>
        <country name="Singapore">
            <rank>4</rank>
        </country>
        <country name="Panama">
            <rank>68</rank>
        </country>
    </data>
鲍罗丁

此解决方案使用XML::LibXML,并且通过查找country具有所需节点名称的每个元素的子代,然后删除所有子代并重新添加所选元素来工作。

use strict;
use warnings;

use XML::LibXML;

my $doc = XML::LibXML->load_xml(IO => *DATA, no_blanks => 1);

my $nodename = 'rank';

for my $country ($doc->findnodes('/data/country')) {
  my ($node) = $country->findnodes($nodename);
  $country->removeChildNodes;
  $country->appendChild($node);
}

print $doc->toString(1);

__DATA__
<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/> First Country
    </country>
    <country name="Singapore">
        <rank>4</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/> Second Country
    </country>
    <country name="Panama">
        <rank>68</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/> Third Country
    </country>
</data>

输出

<?xml version="1.0"?>
<data>
  <country name="Liechtenstein">
    <rank>1</rank>
  </country>
  <country name="Singapore">
    <rank>4</rank>
  </country>
  <country name="Panama">
    <rank>68</rank>
  </country>
</data>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从Perl的xml中获取所需的元素?

来自分类Dev

如何在Perl中获取xml值?

来自分类Dev

如何在Perl中获取xml元素的第一个和最后一个子元素

来自分类Dev

如何在C#中的元素中获取XML属性

来自分类Dev

如何在C#中的元素中获取XML属性

来自分类Dev

Powershell,如何从文件中获取所需的列

来自分类Dev

如何从哈希数组中获取所需的哈希

来自分类Dev

如何从此表中获取所需的列?

来自分类Dev

如何使用XmlReader从XML中的特定子元素获取价值?

来自分类Dev

如何使用LINQ获取XML中的子元素值

来自分类Dev

ORACLE SQL:如何从XMLTYPE列中获取XML元素

来自分类Dev

如何在XML / XSD中获取属性的元素名称

来自分类Dev

如何使用LINQ在XML中按名称获取多个元素

来自分类Dev

如何使用LINQ获取XML中的子元素值

来自分类Dev

ORACLE SQL:如何从XMLTYPE列中获取XML元素

来自分类Dev

python lxml - 如何在 XML 中获取子元素的值

来自分类Dev

通过javascript中的DOM获取所需的表单元素

来自分类Dev

如何在Perl中使用XML :: LibXML获取元素的层次结构

来自分类Dev

如何获取xml元素的特定子元素?

来自分类Dev

Perl:在数组或矩阵中获取元素

来自分类Dev

如何在C#中获取xml父元素中的所有子元素

来自分类Dev

如何从Perl中的两个数组中获取唯一元素

来自分类Dev

如何从Perl中的两个数组中获取唯一元素

来自分类Dev

在Perl中获取XML树数据

来自分类Dev

如何从python中不同行的列中获取所需的组合

来自分类Dev

如何在JavaScript中显示数组中所需的元素

来自分类Dev

如何在数组中打印所需数量的元素?

来自分类Dev

如何从XML文件中获取相关元素及其子元素?

来自分类Dev

如何从XML文件中获取相关元素及其子元素?

Related 相关文章

  1. 1

    如何从Perl的xml中获取所需的元素?

  2. 2

    如何在Perl中获取xml值?

  3. 3

    如何在Perl中获取xml元素的第一个和最后一个子元素

  4. 4

    如何在C#中的元素中获取XML属性

  5. 5

    如何在C#中的元素中获取XML属性

  6. 6

    Powershell,如何从文件中获取所需的列

  7. 7

    如何从哈希数组中获取所需的哈希

  8. 8

    如何从此表中获取所需的列?

  9. 9

    如何使用XmlReader从XML中的特定子元素获取价值?

  10. 10

    如何使用LINQ获取XML中的子元素值

  11. 11

    ORACLE SQL:如何从XMLTYPE列中获取XML元素

  12. 12

    如何在XML / XSD中获取属性的元素名称

  13. 13

    如何使用LINQ在XML中按名称获取多个元素

  14. 14

    如何使用LINQ获取XML中的子元素值

  15. 15

    ORACLE SQL:如何从XMLTYPE列中获取XML元素

  16. 16

    python lxml - 如何在 XML 中获取子元素的值

  17. 17

    通过javascript中的DOM获取所需的表单元素

  18. 18

    如何在Perl中使用XML :: LibXML获取元素的层次结构

  19. 19

    如何获取xml元素的特定子元素?

  20. 20

    Perl:在数组或矩阵中获取元素

  21. 21

    如何在C#中获取xml父元素中的所有子元素

  22. 22

    如何从Perl中的两个数组中获取唯一元素

  23. 23

    如何从Perl中的两个数组中获取唯一元素

  24. 24

    在Perl中获取XML树数据

  25. 25

    如何从python中不同行的列中获取所需的组合

  26. 26

    如何在JavaScript中显示数组中所需的元素

  27. 27

    如何在数组中打印所需数量的元素?

  28. 28

    如何从XML文件中获取相关元素及其子元素?

  29. 29

    如何从XML文件中获取相关元素及其子元素?

热门标签

归档