我的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