2011-08-26 125 views
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<meta name="description" content="Players of Liverpool F.C." /> 
<meta name="keywords" content="liverpool, players of liverpool" /> 
<title>Players of Liverpool F.C.</title> 
</head> 
<body> 
<?php 
$dom = new DOMDocument(); 
$dom->loadHTMLFile('http://en.wikipedia.org/wiki/Liverpool_F.C.'); 
$domxpath = new DOMXPath($dom); 
foreach ($domxpath->query('//span[@id="Players"]/../following-sibling::table[1]//span[@class="fn"]') as $a) 
{echo 
" 
<p>$a->textContent</p> 
"; 
}; 
?> 

</body> 
</html> 

你好,我该如何解析一个包含所有$a->textContent的XML的标签,如<player></player>PHP XML解析器问题

+0

你wan将球员列表提取到您自己的xml文档中?或者只是将玩家粘贴到上面粘贴的这个页面中? –

回答

1

您拼错了维基百科文章的地址。此外,你应该把

<?xml version="1.0" encoding="UTF-8" ?> 

为开端,在一般让XML welformed:

<?php 
$dom = new DOMDocument(); 
$dom->loadHTMLFile('https://secure.wikimedia.org/wikipedia/en/wiki/Liverpool_fc'); 
$domxpath = new DOMXPath($dom); 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"; 
echo "\t<players>\n"; 
foreach ($domxpath->query('//span[@id="Players"]/../following-sibling::table[1]//span[@class="fn"]') as $a) 
{ 
    echo "\t\t<player>$a->textContent</player>\n"; 
}; 
echo "\t</players>"; 
?> 

此输出的玩家一个不错的XML列表:

http://gregersboye.dk/test.php

(你可能需要看源代码,firefox不会很好地显示它)