我的XML(a.xhtml)开始喜欢这个如何防止XML :: XPath在处理XML文件时获取DTD?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
...
我的代码开始这样
use XML::XPath;
use XML::XPath::XMLParser;
my $xp = XML::XPath->new(filename => "a.xhtml");
my $nodeset = $xp->find('/html/body//table');
这是非常缓慢的,而且事实证明,它花费了大量的时间得到DTD(http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd)。
有没有办法在Perl XML :: family中显式声明HTTP代理服务器?我讨厌修改原始a.xhtml文档,如拥有本地DTD副本。
是。您大概可以使用XML :: Catalog将一个目录添加到XML :: Parser对象中,并在XML :: XPath的新对象中使用该解析器。但我从来没有测试过。 – mirod 2008-11-20 13:17:43