Perl XML::LibXML文本内容

Perl XML::LibXML文本内容,xml,perl,xml-libxml,Xml,Perl,Xml Libxml,有什么方法可以防止xml代码中的节点标记?对问题的解释可能是这样的:我有一个xml输入,我查询输入,我想得到查询项的xml输出 <pets> <dog> <name>Maggie</name> <dob>12 October 2005</dob> <price>75</price> <owner>Rosie</owner> </do

有什么方法可以防止xml代码中的节点标记?对问题的解释可能是这样的:我有一个xml输入,我查询输入,我想得到查询项的xml输出

<pets>
  <dog>
    <name>Maggie</name>
    <dob>12 October 2005</dob>
    <price>75</price>
    <owner>Rosie</owner>
  </dog>
</pets>
有没有办法给函数
textContent
一些参数 要保留标签吗?这是我的循环代码块,用于放置节点 转换为哈希,然后将其输出:

$parser = XML::LibXML->new();
$data = $parser->load_xml(string => $takeninput);
$xml = new XML::LibXML::XPathContext($data);
$i = 0;
for $node ($xml->findnodes('//pets/dog'))
  {
    $name = $node->nodeName;
    $hash{$name}[$i] = $node->textContent;
    $i++;
  }
保留孩子们的标签?要获得如下输出:

<?xml version='1.0' standalone='yes'?>
<dog>
    <name>Maggie</name>
    <dob>12 October 2005</dob>
    <price>75</price>
    <owner>Rosie</owner>
</dog>

麦琪
2005年10月12日
75
罗西

感谢您的回答。

库正在按照您的要求执行操作-它正在返回节点的文本内容。标记不是文本内容,因此它不会提供给您

我认为您需要的是
$node->toString
,它将以格式化XML的形式返回
dog
节点

要获得漂亮的布局,请使用
$node->toString(1)

使用:

#/usr/bin/perl
使用警告;
严格使用;
使用XML::XSH2;
xsh$x;
__XSH__
打印$XML::XSH2::Map::x;
输出:

<dog>
    <name>Maggie</name>
    <dob>12 October 2005</dob>
    <price>75</price>
    <owner>Rosie</owner>
  </dog>

麦琪
2005年10月12日
75
罗西

非常感谢!这就是我一整天都在寻找的:)
#!/usr/bin/perl
use warnings;
use strict;

use XML::XSH2;

xsh << '__XSH__';
    open 1.xml ;
    ls //pets/dog |> $x ;
__XSH__

print $XML::XSH2::Map::x;
<dog>
    <name>Maggie</name>
    <dob>12 October 2005</dob>
    <price>75</price>
    <owner>Rosie</owner>
  </dog>