Php XMLDoc GetElementsByTagName仅限第一个条目

Php XMLDoc GetElementsByTagName仅限第一个条目,php,sql,xml,xpath,getelementsbytagname,Php,Sql,Xml,Xpath,Getelementsbytagname,我正在使用php创建一个XML到SQL文件,但只希望我的脚本处理XML文档中的第一个条目 $xmlObject = $xmlDoc->getElementsByTagName('PlaylistEntry'); 输入我想要的特定路径 /Playlist/PlaylistEntry[1]/Title[1]/text() 不会产生结果 有什么建议吗 编辑: $xmlDoc=newDOMDocument(); $xmlDoc->load(“file.xml”); $mysql_hostnam

我正在使用php创建一个XML到SQL文件,但只希望我的脚本处理XML文档中的第一个条目

$xmlObject = $xmlDoc->getElementsByTagName('PlaylistEntry');
输入我想要的特定路径

/Playlist/PlaylistEntry[1]/Title[1]/text()
不会产生结果

有什么建议吗

编辑:

$xmlDoc=newDOMDocument();
$xmlDoc->load(“file.xml”);
$mysql_hostname=“”;
$mysql_user=“”;
$mysql_password=“”;
$mysql_database=“”;
$bd=mysql\u connect($mysql\u主机名,$mysql\u用户,$mysql\u密码)或die(“错误”);
mysql_选择_数据库($mysql_数据库,$bd)或死亡(“错误”);
$xmlObject=$xmlDoc->getElementsByTagName('PlayEntry');
$itemCount=$xmlObject->length;
对于($i=0;$i<$itemCount;$i++){
$Title=$xmlObject->item($i)->getElementsByTagName('Title')->item(0)->childNodes->item(0)->nodeValue;
$sql=“插入到`nowplaying`(Title)值('$Title')”;
mysql_查询($sql);
打印“成品$Title
”; }
xml:


41
结结巴巴
群爱
永远不要相信一首快乐的歌
02_lug_Tied.mp3
id=14245829 | img=http://upload.wikimedia.org/wikipedia/en/f/f9/GrouploveTongueTied.jpg
218
圣罗拉奴佛卡因
利昂国王
利昂国王
03_Holy_Roller_Novocaine.mp3
id=18144083 | img=http://upload.wikimedia.org/wikipedia/en/8/86/Holyrollernovacaine.jpg
257
...
更换

$xmlObject = $xmlDoc->getElementsByTagName('PlaylistEntry');
$itemCount = $xmlObject->length;

for ($i=0; $i < $itemCount; $i++){
$Title = $xmlObject->item($i)->getElementsByTagName('Title')->item(0)->childNodes->item(0)->nodeValue;
谢谢你

我让它工作了

以下是我的结论:

$xpath = new DOMXpath($xmlDoc);
$elements = $xpath->query("/Playlist/PlaylistEntry[1]");

if (!is_null($elements)) 
foreach ($elements as $element) 
$Title = $xpath->query("/Playlist/PlaylistEntry[1]/Title[1]/text()", $element)->item(0)->nodeValue;
$Artist = $xpath->query("/Playlist/PlaylistEntry[1]/Artist[1]/text()", $element)->item(0)->nodeValue;
$sql   = "INSERT INTO `nowplaying` (Title, Artist) VALUES ('$Title', '$Artist')";

再次感谢您的帮助提示:)

请发布一些相关的XML。当然可以。我编辑了这篇文章。如上所述,它工作正常,但正如我所解释的,它从XML文件中获取所有数据。具体来说,getElementsByTagName('playlingentry');我想成为getElementsByTagName('//playlingEntry[1]');,但这并不能正确计算
$xmlObject = $xmlDoc->getElementsByTagName('PlaylistEntry');
$itemCount = $xmlObject->length;

for ($i=0; $i < $itemCount; $i++){
$Title = $xmlObject->item($i)->getElementsByTagName('Title')->item(0)->childNodes->item(0)->nodeValue;
$xpath = new DOMXpath($xmlDoc);
$elements = $xpath->query("/Playlist/PlaylistEntry/Title/text()");

if (!is_null($elements)) 
  foreach ($elements as $element) 
    $Title = $element->wholeText;
$xpath = new DOMXpath($xmlDoc);
$elements = $xpath->query("/Playlist/PlaylistEntry[1]");

if (!is_null($elements)) 
foreach ($elements as $element) 
$Title = $xpath->query("/Playlist/PlaylistEntry[1]/Title[1]/text()", $element)->item(0)->nodeValue;
$Artist = $xpath->query("/Playlist/PlaylistEntry[1]/Artist[1]/text()", $element)->item(0)->nodeValue;
$sql   = "INSERT INTO `nowplaying` (Title, Artist) VALUES ('$Title', '$Artist')";