perl 用 XML::LibXML 解析 Freeplane.mm文件,XML文件
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 utf8;
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, '>:encoding(UTF-8)', $f2) or die "cannot 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函数解析了一个名为 your_test.mm 的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
相关文章:
perl 用 XML::LibXML 解析 Freeplane.mm文件,XML文件
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:盘 在云计算…...

Spring Cloud Alibaba微服务从入门到进阶(七)(服务容错-Sentinel)
雪崩效应 我们把基础服务故障,导致上层服务故障,并且这个故障不断放大的过程,成为雪崩效应。 雪崩效应,往往是因为服务没有做好容错造成的。 微服务常见容错方案 仓壁模式 比如让controller有自己独立的线程池,线程池满…...
Arduino RP2040 + SSD1306 I2C OLED +LittleFS存储GBK字库实现中文显示
Arduino RP2040 + SSD1306 I2C OLED +LittleFS存储GBK字库实现中文显示 📌LittleFS插件安装,可以参考《Arduino RP2040 LittleFS的使用介绍》🎈相关内容《Arduino esp8266 软件I2C SSD1306 +LittleFS存储GBK字库实现中文显示》🔖基于Earle F. Philhower, III的核心固件开…...

代码随想录算法训练营第day53|1143.最长公共子序列 、 1035.不相交的线、 53. 最大子序和 动态规划
目录 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 1143.最长公共子序列 力扣题目链接(opens new window) 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原…...

【Flutter学习笔记】10.2 组合现有组件
参考资料: 《Flutter实战第二版》 10.2 组合现有组件 在Flutter中页面UI通常都是由一些低级别组件组合而成,当我们需要封装一些通用组件时,应该首先考虑是否可以通过组合其他组件来实现,如果可以,则应优先使用组合&…...

C++的vector类(一):vector类的常见操作
目录 前言 Vector类 遍历与初始化vector vector的扩容机制 vector的对象操作 find与insert 对象数组 前言 string类中还有一些内容需要注意: STL 的string类怎么啦? C面试中string类的一种正确写法 C STL string的Copy-On-Write技术 C的st…...
SpringBoot注解
Spring Boot 中常用的一些注解及其作用如下所示: SpringBootApplication:标注一个主程序类,用于启动 Spring Boot 应用,通常放在包的最顶层。 RestController:结合 Controller 和 ResponseBody,用于定义 R…...
每日三个JAVA经典面试题(十九)
1.Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?Java并发API中的Lock接口提供了一种比传统synchronized块或方法更灵活、更强大的线程同步机制。Lock接口允许更细粒度的锁控制,通过它可以实现更复杂的线…...

springboot企业级抽奖项目业务一(登录模块)
开发流程 该业务基于rouyi生成好了mapper和service的代码,现在需要在controller层写接口 实际操作流程: 看接口文档一>controller里定义函数一>看给出的工具类一>补全controller里的函数一>运行测试 接口文档 在登录模块有登录和登出方…...

【Python + Django】启动简单的文本页面
前言: 为了应付(bushi)毕业论文,总要自己亲手搞一个像模像样的项目出来吧 ~ ~ 希望自己能在新的连载中学到项目搭建的知识,这也算是为自己的测试经历增添光彩吧!!! 希望、希望大家…...
Docker——问题解决:服务器端和Windows端IP互通
踩了大坑,特此记录!!!!! 我在服务器端部署了服务,但是在本地端Windows机器上无法访问,因此卡了一天。 1. 双向Ping通 防火墙导致只能单向Ping通 首先需要解决双向ping通的问题&…...
HTTP跨域
1. 简介 HTTP跨域是指不同域名下的网页请求资源时,由于浏览器同源策略限制,导致请求被阻止。为解决这一问题,开发者常采用跨域资源共享(CORS)等技术来允许合法跨域请求,确保网站功能正常运行。 同源 协议…...

用Python的turtle库绘制皮卡丘
turtle库的简介 turtle(海龟)库是turtle绘图体系的python实现,turtle库是一种标准库,是python自带的。 turtle(海龟)是一种真实的存在,有一个海龟在窗口的正中心,在画布上游走,走过的轨迹形成了绘制的图形࿰…...
C语言打印当前时间
#include <time.h> void print_current_time(char* func_name) { // 获取当前的时间 time_t current_time; time(¤t_time); // 将时间转换为本地时间格式 struct tm *local_time localtime(¤t_time); // 打印当前的时间 …...

(一)基于IDEA的JAVA基础4
注释文本,注释模版 单行注释://开头放在代码前面,对少部分。 多行注释:快捷方式ctrlshift/,对段落代码注 释。 文档注释:/**……**/,用于声明作者或创作时 间。 文档注释如何设置,首先找到File中…...
【Python】复习12:标准库与第三方库
目录 概念标准库第三方库总结Python 标准库`os` 模块`sys` 模块`json` 模块`re` 模块`datetime` 模块代码示例`os` 模块例子`sys` 模块例子`json` 模块例子`re` 模块例子`datetime` 模块例子第三方库`numpy``pandas``requests`安装第三方库使用第三方库其他一些流行的Python库数…...
CUDA 12介绍
CUDA(Compute Unified Device Architecture)是由 NVIDIA 开发的并行计算平台和应用程序编程接口(API)。CUDA 使开发人员能够使用 NVIDIA GPU 进行通用目的的并行计算。CUDA 通过利用 GPU 的大规模并行计算能力来加速各种类型的计算…...

旅游系统-软件与环境
运行 1.下载软件并进行环境配置 2.导入项目包以及SQL文件 (1)VsCode 管理员运行打开 a.新建terminal 注意: 1.执行 npm config set registry https://registry.npm.taobao.org 2.执行 npm install 3.执行 $env:NODE_OPTIONS“–openssl-legacy-provider” b.输入…...

AI基础知识(2)--决策树,神经网络
1.什么是决策树? 决策树是一类常见的机器学习方法,决策树是基于树的结构来进行决策。决策过程中提出的每一个问题都是对于属性的“测试”,决策的最终结论对应了我们希望的判定结果。一个决策树包含一个根节点,若干个内部节点和若…...
蓝桥杯C++大学B组一个月冲刺记录2024/3/21
蓝桥杯C大学B组一个月冲刺记录2024/3/20 规则:每日三题 今日的题很简单┗|`O′|┛ 嗷~~ 1.奶酪 现有一块大奶酪,它的高度为 h ,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。 我们可以在…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...

Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...