gpt4 book ai didi

perl - 如何在 Perl 中解析 XML 并创建树结构

转载 作者:行者123 更新时间:2023-12-01 10:00:42 25 4
gpt4 key购买 nike

我正在用 XML::Simple 解析一个 XML 文件.有没有办法从 XML 中获取树形?如果是这样,请举例说明或建议 CPAN 包。

我想知道在 column 之后我必须处理哪个标签等等。

标签没有顺序。 column 标签可以多次出现在 Tabledisplay_name 之后。

Tab
column
Table
column
display_name
column
display_name

XML:

<Tab>
<column>
<display_name>xyz</display_name>
<display_name>pqr</display_name>
</column>
<Table>
<column><display_name>Department</display_name></column>
</Table>
<display_name>abc</display_name>
<column>pwd</column>
<display_name>jack</display_name>
</Tab>

使用 XML::Simple 输出:

$VAR1 = {
'Table' => {
'column' => {
'display_name' => 'Department'
}
},
'display_name' => [
'abc',
'jack'
],
'column' => [
{
'display_name' => [
'xyz',
'pqr'
]
},
'pwd'
]
};

预期的 o/p:

$VAR1 = {
'column' => {
'display_name' => [
'xyz',
'pqr'
]
}
'Table' => {
'column' => {
'display_name' => 'Department'
}
},
'display_name' => 'abc',
'column' => 'pwd',
'display_name' =>'jack'
};

我知道不可能有具有相同键的散列。请建议我可以维护标签序列并能够打印它们的方法。

最佳答案

XML::LibXML 创建一棵没有信息丢失的树。

use XML::LibXML qw( );
my $parser = XML::LibXML->new();
my $tree = $parser->parse_file($qfn);

您可以从那里生成您指定的输出。 (我不知道你为什么要这样做,因为你想要输出的 Perl 代码在运行时会丢失数据。)

关于perl - 如何在 Perl 中解析 XML 并创建树结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16746404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com