perl + DOM + 使用 XML::LibXML + 如何从 XML 文件中删除 xml 版本标题?与 DOM

标签 perl

我通过 perl 脚本(如下所示)使用 XML::LibXML 创建以下 XML 文件:

 more test.xml 

 <?xml version="1.0"?>
 <books>
 <computer/>
 </books>

我的问题:如何删除“xml版本标题”:

      <?xml version="1.0"?>

来自 test.xml 文件?在 perl 脚本中使用 DOM 命令?

为了仅获取 text.xml 文件中的以下行:

 <books>
 <computer/>
 </books>

耶尔

#

perl 脚本:

#!/usr/bin/perl

use strict;
use warnings;
use XML::LibXML;

my $doc  = XML::LibXML::Document->new;  
my $root = $doc->createElement('books');
$doc->setDocumentElement($root);

my $computer = $doc->createElement('computer');
$root->appendChild($computer);
$doc->toFile('/var/tmp/test.xml'); 

最佳答案

好的,关于我之前的评论,我现在找到了解决方案。

似乎toFile绕过了$skipXMLDeclaration,而toString却没有。因此,以下工作有效:

$XML::LibXML::skipXMLDeclaration = 1;

my $doc  = XML::LibXML::Document->new;
# create your document

print $doc->toString;

(非常小的)缺点是您必须自己编写文件。

关于perl + DOM + 使用 XML::LibXML + 如何从 XML 文件中删除 xml 版本标题?与 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3236028/

相关文章:

perl - 是否有用于在运行时将 YAML 文件动态转换为 Moose 对象的 Perl 模块?

arrays - 使用数组元素 perl 在文件中搜索字符串

perl - 如何在 Perl 中将跨多个时区的 unix 日期输出转换为 UTC?

Perl:哪些浮点运算是无损的?

perl - 如何重新加载 mojolicious 内置网络服务器守护进程?

perl - 如果文件以小端或大端写入,如何检查 perl?

regex - 如何从只出现一次的列表中获取值?

html - 我应该为静态 HTML 应用程序使用哪个 Perl Web 框架?

arrays - 将数组打印到文本文件 (v2)

perl - 在这种情况下,< 在 Perl 中做了什么?