【发布时间】:2012-10-26 11:07:03
【问题描述】:
例如,我有一个 xml 文件,
<title> hello <name> hi </name> <street> id </street> this is xml file </title>
这里的父节点是title。我将提取父节点内的文本,删除内部标签。
我已经尝试过使用正则表达式。但是除了使用正则表达式之外,还有什么方法可以使用一些基于 xml 的函数来删除标签。注意:标签名称事先不知道。
你好,我试过了,我用的是同一个xml
use XML::Simple;
use Data::Dumper;
my $simple = XML::Simple->new();
my $data = $simple->XMLin('XMLRemoval.xml');
my %oldHash = %$data; my %newHash = ();
while ( my ($key, $innerRef) = each %oldHash )
{
$newHash{$key} = @$innerRef[1];
}
foreach $key ( keys %newHash )
{
print $newHash{$key};
}
我得到了错误:不能使用字符串(“id”)作为 ARRAY ref 而“strict refs”
【问题讨论】:
-
你检查过 XML::Simple 模块了吗??我想你会得到你想要的。
-
我已经搜索过,但找不到任何可以使用 XML::Simple 删除的内容。你能告诉你是否知道方法吗
-
如果你对哈希有一定的了解,并且通过使用 XMLin 方法你可以得到你想要的。再次,请从您的角度尝试,粘贴您的代码(错误,努力),以便我们提供帮助。要求代码并不好,因为这里的 ppl 是为了寻求帮助而不是为了完成您的任务。这也可能会导致投反对票。
-
你好我试过这个,我用同样的xml使用XML::Simple;使用 Data::Dumper;我的 $key;我的 $simple = XML::Simple->new();我的 $data = $simple->XMLin('XMLRemoval.xml');我的 %oldHash = %$data;我的 %newHash = ();而 ( 我的 ($key, $innerRef) = 每个 %oldHash ) { $newHash{$key} = @$innerRef[1]; } foreach $key (keys %newHash) { print $newHash{$key};我得到了错误:Can't use string ("id ") as an ARRAY ref while "strict refs"
标签: xml perl xml-parsing extract