• perl 用 XML::LibXML 解析 Freeplane.mm文件,


    Perl 官网 www.cpan.org
    从 https://strawberryperl.com/  下载网速太慢了
    建议从 https://download.csdn.net/download/qq_36286161/87892419
    下载 strawberry-perl-5.32.1.1-64bit.zip  约105MB
    解压后安装.msi,装完后有520MB+,建议安装在D:盘

    在云计算中,解析XML元素和属性是一种常见的操作,因为XML是一种常见的数据交换格式,可以用来表示各种不同的数据结构和信息。Perl 是一种过去流行的脚本语言,可以用来处理各种文本数据,包括XML数据。

    在Perl 中,可以使用各种模块和函数来解析 XML元素和属性。其中,最常用的模块是  XML::LibXML,它提供了一组完整的XML解析和处理函数,可以非常方便地解析XML文档中的元素和属性。

    例如,下面是一个使用 XML::LibXML 模块解析 XML元素和属性 的示例代码:

    编写 test_LibXML.pl  如下

    1. #!/usr/bin/perl
    2. use strict;
    3. use warnings;
    4. use Encode;
    5. use XML::LibXML;
    6. if ($#ARGV != 0){
    7. die "You must specify a file.xml to parse";
    8. }
    9. my $file = shift @ARGV;
    10. # 创建一个XML解析器对象
    11. my $parser = XML::LibXML->new();
    12. # 解析XML文档
    13. my $doc = $parser->parse_file($file)
    14. or die "cannot read file.xml\n";
    15. my $f2 = $file .'.txt';
    16. # 写入文件
    17. open(my $fw, '>', $f2) or die "Could not open file '$f2' $!";
    18. # 获取所有的元素节点
    19. my @nodes = $doc->findnodes('//node');
    20. # 遍历所有的元素节点
    21. foreach my $node (@nodes) {
    22. # 获取元素名称
    23. if( $node->nodeName() eq 'node'){
    24. # 获取所有的属性
    25. my @attrs = $node->attributes();
    26. # 遍历所有的属性
    27. foreach my $attr (@attrs) {
    28. # 获取属性名称和属性值
    29. if( $attr->nodeName() eq 'TEXT'){
    30. my $txt = $attr->value();
    31. # 输出属性值 #Encode::_utf8_on($txt);
    32. print $fw "$txt\n";
    33. }
    34. }
    35. }
    36. }
    37. close($fw);

    运行 cmd
    chcp 65001
    perl test_LibXML.pl your_test.mm

    在这个示例代码中,我们首先使用XML::LibXML模块创建了一个XML解析器对象,然后使用parse_file函数解析了一个名为example.xml的XML文件。接着,我们使用findnodes函数获取了所有的元素节点,并遍历了每个元素节点,获取了元素名称和所有的属性。最后,我们遍历了每个属性,获取了属性名称和属性值,并输出了这些信息。

    在Windows10系统中Perl安装Tk模块

    1. #!/usr/local/bin/perl
    2. use strict;
    3. use warnings;
    4. use Tk;
    5. my $mw = MainWindow->new or die 'cannot create Widget';
    6. my $types = [['Freemind', '.mm'], ['XML file', '.xml']];
    7. my $filename = $mw->getOpenFile(-filetypes=>$types);
    8. print $filename;
    9. MainLoop;

    运行 perl tk_openfile.pl 

    参阅:Perl XML::LibXML by Example — Perl XML::LibXML by Example documentation

  • 相关阅读:
    基于阿里巴巴dropshipping应用程序的Shopify税收
    MySQL学习笔记7
    【JavaWeb】火车票管理系统 (三)用户删除之在jsp页面上显示数据
    PR BeatEdit 节奏卡点神器 的报错 beat detection error: IBT failed 和解决路径
    mAP,PR-curve解释及计算等
    第十三章 进程与线程
    【无标题】
    [QT]day1
    【英雄哥六月集训】第 23天: 字典树
    PTA 6-1 删除字符串中所有*
  • 原文地址:https://blog.csdn.net/belldeep/article/details/136702496