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  如下

#!/usr/bin/perl
use strict;
use warnings;
use Encode;
use XML::LibXML;

if ($#ARGV != 0){
    die "You must specify a file.xml to parse";
}
my $file = shift @ARGV;

# 创建一个XML解析器对象
my $parser = XML::LibXML->new();

# 解析XML文档
my $doc = $parser->parse_file($file)
         or die "cannot read file.xml\n";

my $f2 = $file .'.txt';
# 写入文件
open(my $fw, '>', $f2) or die "Could not open file '$f2' $!";

# 获取所有的元素节点
my @nodes = $doc->findnodes('//node');

# 遍历所有的元素节点
foreach my $node (@nodes) {
  # 获取元素名称
  if( $node->nodeName() eq 'node'){

    # 获取所有的属性
    my @attrs = $node->attributes();

    # 遍历所有的属性
    foreach my $attr (@attrs) {
      # 获取属性名称和属性值
      if( $attr->nodeName() eq 'TEXT'){
        my $txt = $attr->value();
        # 输出属性值 #Encode::_utf8_on($txt);
        print $fw "$txt\n"; 
      }    
    }
  }
}
close($fw);

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

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

在Windows10系统中Perl安装Tk模块

#!/usr/local/bin/perl
use strict;
use warnings;
use Tk;

my $mw = MainWindow->new or die 'cannot create Widget';

my $types = [['Freemind', '.mm'], ['XML file', '.xml']];

my $filename = $mw->getOpenFile(-filetypes=>$types);
print $filename;

MainLoop;

运行 perl tk_openfile.pl 

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

相关推荐

  1. perl XML::LibXML 解析 Freeplane.mm文件

    2024-03-15 09:24:05       17 阅读
  2. perl XML::Parser 解析 XML文件,访问哈希

    2024-03-15 09:24:05       19 阅读
  3. perl:打开文件夹,选择视频文件,并播放

    2024-03-15 09:24:05       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-15 09:24:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-15 09:24:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-15 09:24:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-15 09:24:05       20 阅读

热门阅读

  1. 像51单片机一样----STM32寄存器点灯

    2024-03-15 09:24:05       19 阅读
  2. 软件测试的测试用例

    2024-03-15 09:24:05       21 阅读
  3. python爬虫(10)之get()函数

    2024-03-15 09:24:05       20 阅读
  4. docker环境下使用达梦

    2024-03-15 09:24:05       22 阅读
  5. GRPC服务端和客户端DEMO

    2024-03-15 09:24:05       21 阅读
  6. openstack迁移虚拟机--来自gpt

    2024-03-15 09:24:05       17 阅读
  7. Microsoft VBA Excel 规律的Text文件转工作表Sheet

    2024-03-15 09:24:05       16 阅读
  8. 什么是capturing lambda

    2024-03-15 09:24:05       26 阅读
  9. 【MySQL】的相关面试题(二)

    2024-03-15 09:24:05       21 阅读
  10. C语言基础之字符串处理函数

    2024-03-15 09:24:05       20 阅读
  11. 新概念英语第二册(83)

    2024-03-15 09:24:05       20 阅读
  12. vue 修改props

    2024-03-15 09:24:05       22 阅读