有人知道可以解析 XML 文档并使我能够通过 CSS 选择器和 namespace 支持选择节点的 Perl 库吗?
背景: 我试图用 perl libxml 包解析带有默认命名空间的文档,但在我从根节点中删除默认命名空间之前它从未返回任何内容。
这是我在该主题上找到的内容: https://mail.gnome.org/archives/xml/2003-April/msg00143.html
所以一个简单的例子就是这样一个文件:
<?xml version="1.0" encoding="utf-8"?>
<root xmlns="http://example.com/ns">
<message>Hi</message>
</root
XPath //message
使用 perl libxml 不会给我任何结果。我知道该库正在完美地完成它的工作,但我仍然需要解析这些东西,所以我认为基于 CSS 选择器的库可能会更成功。
最佳答案
这应该适用于您可以在 libxml 中使用的任何内容。
use strictures;
use HTML::TreeBuilder::LibXML qw();
BEGIN { HTML::TreeBuilder::LibXML->replace_original; }
use Web::Query qw();
print Web::Query->new_from_html(<<'MARKUP')->find('root > message')->text;
<?xml version="1.0" encoding="utf-8"?>
<root xmlns="http://example.com/ns">
<message>Hi</message>
</root>
MARKUP
1;
关于xml - 使用 CSS 选择器解析 Perl XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11063871/