如何读取 Perl 变量的根标签和根结束标签?

2024-01-10

我是 Perl 新手。我想将 xml 根标记和根结束标记读取到 perl 变量。

我尝试了正常的文件读取。有效。我正在得到第一行和最后一行。但有时,如果没有新的线路,您就不能相信第一条线路。使用正则表达式读取第一行就完成了。

但我在 google 上搜索了一些内置 Perl xml 函数来完成此任务。我没有找到任何,即对我来说都是新的。

请让我知道哪个图书馆最适合这个。如果可能的话,举一些例子。

eg:-

<nst:root arg='1' arg2='2' arg3='3'>
   <a>1</a>
   <b>2</b>
</nst:root>

我想要 2 个变量,例如

$root = '<nst:root arg='1' arg2='2' arg3='3'>';
$rootClose = '</nst:root>';

我想用其他 xml 替换这个根标签。请帮忙。

这就是我想做的。我有一个 xml 文件,它有实际的根标签。我将该文件分成多个使用XML::Twig::xml_split。我收到很多文件,但标头不同。我想用主文件中的实际标头更新子文件

EG:-

分割限制为2

实际文件是,

<nst:root arg='1' arg2='2' arg3='3'>
       <a>1</a>
       <a>1</a>
       <a>1</a>
       <a>1</a>
       <a>1</a>
       <a>1</a>
</nst:root>

它将分为 3 个文件XML::Twig::xml_split。并且插件添加自己的标头。

File1:-
<xml_split:root xmlns:xml_split="http://xmltwig.com/xml_split">
           <a>1</a>
           <a>1</a>
</xml_split:root>

File2:-
<xml_split:root xmlns:xml_split="http://xmltwig.com/xml_split">
           <a>1</a>
           <a>1</a>
</xml_split:root>

File3:-
<xml_split:root xmlns:xml_split="http://xmltwig.com/xml_split">
           <a>1</a>
           <a>1</a>
</xml_split:root>

我想要它就像

File1:-
<nst:root arg='1' arg2='2' arg3='3'>
           <a>1</a>
           <a>1</a>
</nst:root>

File2:-
<nst:root arg='1' arg2='2' arg3='3'>
           <a>1</a>
           <a>1</a>
</nst:root>

File3:-
<nst:root arg='1' arg2='2' arg3='3'>
           <a>1</a>
           <a>1</a>
</nst:root>

我不知道如何使用xml_split程序,但这里你有一个使用的方法XML::Twig模块,我在其中创建新元素并将每对子元素从一棵树移动到另一棵树:

#!/usr/bin/env perl

use strict;
use warnings;
use XML::Twig;
use POSIX qw<ceil>;

my ($split_limit, $n) = (2, 0); 

my $twig = XML::Twig->new->parsefile( shift );
my $root = $twig->root;

for (  1 .. ceil( $root->children_count / $split_limit ) ) { 
    my $t = XML::Twig::Elt->new( $root->tag, $root->atts );
    for ( 1 .. $split_limit ) { 
        my $children = $root->first_child;
        last unless $children;
        $children->move( last_child => $t );
    }   
    $t->print_to_file( 'xmlfile-' . $n++ . '.xml' );
}

像这样运行它:

perl script.pl xmlfile

这会为 root 的每一对子级生成一个文件及其标头:

==> xmlfile-0.xml <==
<nst:root arg="1" arg2="2" arg3="3"><a>1</a><a>1</a></nst:root>
==> xmlfile-1.xml <==
<nst:root arg="1" arg2="2" arg3="3"><a>1</a><a>1</a></nst:root>
==> xmlfile-2.xml <==
<nst:root arg="1" arg2="2" arg3="3"><a>1</a><a>1</a></nst:root>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何读取 Perl 变量的根标签和根结束标签? 的相关文章

  • JavaFX 中的 fx:id 和 id: 有什么区别?

    也许是一个真正的新手的问题 我开始通过阅读以下教程在 FMXL 应用程序中使用场景生成器学习 JavaFX http docs oracle com javase 8 javafx get started tutorial fxml tut
  • 根据属性值使用 xslt 合并两个元素

    这是我的源文件的样子
  • 使用 -T 开关运行时 $ENV{ENV} 不安全

    当我尝试最后一个例子时perlfaq5 如何计算文件中的行数 http perldoc perl org perlfaq5 html How do I count the number of lines in a file 我收到一条错误消
  • Jackson XML ArrayList 输出具有两个包装器元素

    我在 Jackson 生成的 XML 输出中得到了两个包装器元素 我只想拥有一个 我有一个 Java bean Entity Table name CITIES JacksonXmlRootElement localName City pu
  • 删除Android所有语言中的字符串

    我有一个包含多个翻译的应用程序 我想删除一些字符串 我怎样才能重构并删除它们一次 例如在默认情况下strings xml文件并自动将删除传播到其他翻译的其他 strings xml 文件 您可以通过 Android Studio 中的 翻译
  • 使用 XML 和 C# 创建 Word 文档

    我已经为报告创建了一个 xml 模板 用户应该能够通过我用 C 创建的程序添加信息以根据自己的需要个性化此报告 如何根据用户输入文本框的内容编辑实体的内容 然后将其显示在 Word 上 网上有大量有关使用 XML 和 C 创建 Word 文
  • Perl:测试输入阅读器?

    有没有一种方法可以使用标准 Test 等模块自动测试 Perl 程序是否正在读取输入 例如标准输入正确吗 例如 测试一个从 STDIN 读取两个整数并打印它们之和的程序 这不是 100 清楚你的意思 我会回答假设你想编写一个测试脚本来测试你
  • SpreadsheetML 文件扩展名被 IE 和 FF 更改 - 内容类型错误?

    我正在 PHP 中生成 SpreadsheetML 文件 当用户下载文件并保存时 默认情况下文件会另存为 Report xml 并在 Excel 中打开 但是 如果选择在 Excel 中打开文件而不是保存文件 则文件名将更改为 Report
  • Perl 语言的目标是在运行时生成快速的程序吗?

    最近有朋友告诉我 看 Perl 从来就不是为了快而设计的 真的吗 我能找到的相关信息是来自维基百科 http en wikipedia org wiki Perl Overview 该语言旨在实用 易于使用 高效 完整 而不是美观 微小 优
  • 使用 Cygwin 安装 CPAN GD 模块失败

    我已经尝试解决为什么 CPAN GD 模块无法使用 Cygwin 安装 2 天了 任何帮助深表感谢 谢谢 cpan install GD Going to read home xxxxxxxxxx cpan Metadata Databas
  • 在 Android 中存储和访问 XML 的最佳方式是什么?

    虽然我意识到资源本身是在 XML 文件中定义的 但如果我有一个我希望使用的自己类型的 XML 文件 我是否应该将它们存储在 res xml 中 有没有更好的方法来做到这一点 例如使用资产 然后将它们加载为二进制文件以供另一个 XML 库解析
  • 如何使用XPath选择非空段落?

    我想要抓取的网页具有类似的结构 每个都有一个段落是一个问题 一个段落是一个答案 我想抓取每个问题和答案并将它们存储在两个项目中 问题是 在某些页面上 问题和答案分别是 xxx p 1 and xxx p 2 但在其他页面上 xxx p 1
  • 自定义 XML 文件比较

    我看过很多关于 XML 比较的帖子 但我看过的没有一个能解决我的问题 我们有一些 XML 格式的文本文档 产品描述 带有标题和段落 正在更新 即版本化 我的任务是制作变更摘要 也就是说 我们想要获取两个连续的文件并生成第三个 标题结构 大纲
  • 将 LINQ 嵌套到 XML

    我有一些来自遗留应用程序的非标准 XML
  • 使用 XProc 进行 XML 流处理

    我正在玩xproc http www w3 org TR xproc XML 管道语言和http xmlcalabash com http xmlcalabash com 我想找到一个流式传输大型 xml 文档的示例 例如 给定以下内容hu
  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • 如何在 MessageContract 类型中使用 XML 属性?

    前面的注释 我无法更改传入的 SOAP 请求的格式 因为它们是由国际标准固定的 weeeeeeeee 我有一个 SOAP 请求进入我的 WCF 服务 如下所示
  • 合并xml文档

    我遇到的所有关于合并 XML 文档的解决方案都无法实现我的愿望 让我解释 XML 文档 1 a b title Original Section b title Original Child Section b b title Origin
  • Ebay api GetSellerList,解析响应 XML

    我正在使用 eBay 交易 api 来获取当前列出的卖家股票 我正在使用 GetSellerList 调用 我在解析 xml 时遇到问题 然后将其插入到网站商店中 这是 xml 请求
  • 折叠具有多个字段的行

    我有这个代码 awk seen 1 2 a 1 a 1 a 1 t 2 END for i in a print i a i inputfile 我想折叠具有两个以上字段的行 但始终基于第一个字段作为索引 输入文件 三列制表符分隔 prot

随机推荐

  • 如何用 Any 类型来包装价值?使用@Parcelize

    我在尝试将值放入 Any 类型时遇到问题 放入包裹中 我正在使用 kotlinx android parcel 中的 Parcelize Lint 警告我并提示要添加的消息 RawValue 但这没有帮助 我有 android os Bad
  • 表单元素的 action 属性可以为空吗?

    从 HTML5 开始 广泛使用和推荐的action 是无效的 HTML 从规格来看 如果指定了 action 和 formaction 内容属性 则必须具有 一个有效 URL 的值 那么正确的方法是什么action属性指向当前页面 我目前正
  • 在R中快速读取多个文件

    我有超过 10000 个 csv 文件 我需要对每个 csv 文件的每一列进行快速傅里叶变换 我可以访问 1000 个核心 最快的方法应该是什么 目前我有一个 for 循环按顺序读取每个文件并使用apply data 2 FFT 功能 我该
  • 如何确保应用程序只有一份副本在运行? [复制]

    这个问题在这里已经有答案了 可能的重复 防止 Linux 上出现多个进程实例 https stackoverflow com questions 2964391 preventing multiple process instances o
  • 如何在 Spring 中检查 Request Scope 的可用性?

    我正在尝试设置一些代码 如果 spring 的请求范围可用 这些代码将以一种方式运行 如果所述范围不可用 则以另一种方式运行 所涉及的应用程序是一个 Web 应用程序 但有一些 JMX 触发器和计划任务 即 Quartz 也会触发调用 E
  • 如何在 TypeScript 中将项目推送到 [string]

    我想将项目添加到 string 但以下代码在 param push 语句处失败 EDIT declare var sqlitePlugin any var query string SELECT FROM items var param s
  • 请求位置更新的频率超过 5 秒(Android Fused 位置)

    我正在制作一个实时位置监听应用程序 我需要调用位置更新每 3 秒一次 I use Fused https developer android com google play services location html地点 我的间隔设置为
  • 具有多个条件主题的 Firebase API 调用

    我在调用 FCM API 时遇到一个悲惨的问题 简而言之 当我使用以下方式调用 API 时 URL https fcm googleapis com fcm send Content Type application json Author
  • 祖先查询解析错误

    我正在努力让我的祖先查询 https developers google com appengine docs python datastore structuring for strong consistency工作 但我不断收到此错误
  • 如何在 C# 中将 int[] 转换为 byte[]

    如何在 C 中将 int 转换为 byte 一些代码将不胜感激 EDIT 我需要一个函数来执行以下操作 byte FuncName int Input 由于您的问题中的细节很少 我只能猜测您要做什么 假设您想将 2D 整数数组 展平 为 1
  • 后台工作人员:在执行 RunWorkerCompleted 之前确保 ProgressChanged 方法已完成

    假设我正在使用后台工作者并且我有以下方法 private void bw DoWork object sender DoWorkEventArgs e finalData MyWork sender as BackgroundWorker
  • 当调用函数时,堆栈帧真的会被推入堆栈吗?

    我很长一段时间以来所学到的方法是 当我运行程序时 立即进入堆栈的第一件事是 main 方法的堆栈帧 如果我从 main 中调用一个名为 foo 的函数 那么一个堆栈帧 即局部变量 自动对象 的大小 和参数也会被推入堆栈 然而 我遇到了一些与
  • CefSharp获取页面截图

    是否可以使用以下方式获取网页的屏幕截图CefSharp 我找到了有关的信息GetImage 方法 但似乎不再支持 还有其他办法吗 我需要从屏幕外浏览器获取屏幕截图 因此制作显示浏览器的屏幕屏幕截图并不是解决方案 我已经在分叉分支中实现了此功
  • 如何在android中使用openstreetmap通过纬度和经度获取城市名称[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在我的应用程序中 我使用 osm 而不是谷歌地图 我有纬度和经度 所以从这里我将如何查询从 osm 数据库获取城市名称 请帮助我 我正在使
  • 显示一个句子,一次一个字符

    我想用 jQuery 一次一个字符地显示一个句子 有没有一个插件可以做到这一点或者我怎样才能达到这种效果 你可以写一个小插件来做到这一点 这里有一些可以帮助您入门的东西 远非完美 只是为了给您一个想法 function fn writeTe
  • 可索引类型 - TypeScript

    下面的语法 interface StringArray index number string 指出当StringArray索引为number 它将返回一个string 例如 let myArray StringArray myArray
  • 获取 JSON 格式的 JSDoc 输出

    有没有办法配置 JSDoc 使输出采用 JSON 格式而不是通常的 HMTL 格式 有一个选项 X 解释 它使用已解析的 AST 创建 JSON 文件 jsdoc X mylib gt jsdoc ast json 要理解此 JSON 您可
  • 如何更改引导程序中面板的折叠方向

    我有一个众所周知的基本可折叠面板 其代码如下所述 我通过 css 设置更改了一些属性 例如折叠和折叠高度和宽度 但无法更改折叠方向 我想将其更改为与默认位置相反的顶部 我怎样才能做到这一点 我向你保证 我尝试了多种方法 但无法解决问题 di
  • 在 numpy 中加速矢量化眼球追踪算法

    我正在尝试实现 Fabian Timm 的眼球追踪算法 http www inb uni luebeck de publikationen pdfs TiBa11b pdf http www inb uni luebeck de publi
  • 如何读取 Perl 变量的根标签和根结束标签?

    我是 Perl 新手 我想将 xml 根标记和根结束标记读取到 perl 变量 我尝试了正常的文件读取 有效 我正在得到第一行和最后一行 但有时 如果没有新的线路 您就不能相信第一条线路 使用正则表达式读取第一行就完成了 但我在 googl