【发布时间】:2018-11-07 13:13:33
【问题描述】:
我正在使用 XML::LibXML::Reader 读取 xml 文件
my $reader = XML::LibXML::Reader->new(IO => $fh, load_ext_dtd => 0) or die qq(cannot read content: $!);
while ($reader->nextElement( 'item' )) {
my $copy = $reader->copyCurrentNode(1);
my $title = $copy->findvalue( 'title' );
}
然而,xml中的标题是在一个CDATA标签内,所以如果我看它,它就像
<![CDATA[Some title here]]>
我自然可以使用一些正则表达式来摆脱额外的标签,但我想知道是否有一种更简洁的方式让 XML::LibXML::reader 返回没有 cdata 标签的标题?
我一直在查看文档,但找不到任何关于这样做的方法的参考。
【问题讨论】:
-
顺便说一句,你的第一行有两个错误。 1)
->new不是系统调用,所以$!出错时没有意义。 2)->new出错时不返回 undef;它会引发异常。 -
谢谢 ikegami 我会改正的
标签: perl xml-libxml