使用PHP从XMl格式的节点内部获取数据

使用PHP从XMl格式的节点内部获取数据,php,xml,simplexml,Php,Xml,Simplexml,所以,我不知道该如何描述我需要的东西,但希望有人能理解 整个xml文件的单个元素如下所示: for ( $counter = 1; $counter load($file_xml); //make sure path is correct $note = $objDOM->getElementsByTagName("Event"); // Loop through XML feed $i = 0; foreach( $note as $value ) { $even

所以,我不知道该如何描述我需要的东西,但希望有人能理解

整个xml文件的单个元素如下所示:

for ( $counter = 1; $counter load($file_xml); //make sure path is correct $note = $objDOM->getElementsByTagName("Event"); // Loop through XML feed $i = 0; foreach( $note as $value ) { $event_id = $value->getAttribute('ID'); # venue id $VenueID = $value->getElementsByTagName("Venue"); $venue_id = $VenueID->item(0)->getAttribute("ID"); } } 这将返回图像_URL 205 115

注意:图像URL与205和115之间的“空格”实际上似乎不是“空格”


提前感谢。

假设您的事件节点有一个父节点(即
):


假设您的事件节点有一个父节点(即
):

试试这个
$xml=simplexml\u加载文件(“books.xml”)
或死亡(“错误:无法创建对象”);
foreach($xml->children()作为$books){
foreach($books->children()作为$book=>$data){
echo$data->id;
echo$data->title;
echo$data->author;
回声“
”; }
}

试试这个
$xml=simplexml\u加载文件(“books.xml”)
或死亡(“错误:无法创建对象”);
foreach($xml->children()作为$books){
foreach($books->children()作为$book=>$data){
echo$data->id;
echo$data->title;
echo$data->author;
回声“
”; }

}

请注意,第(1)项是因为艺术家也有一件作品。为了简单起见,我删除了它。请注意,项目(1)是因为艺术家也有一个作品。为了简单起见,我删除了它。如果$file_xml作为xml从URL(api)返回,会有什么不同吗?结构是:142141431100ALL当前我也在使用的信息:$objDOM=newdomdocument()$objDOM->load($file\u xml)$注意=$objDOM->getElementsByTagName(“详细信息”)@user450784:xml的结构应该是这样的。我刚刚尝试了您的代码,将$file_xml作为作为作为xml返回的数据的api url,但是我遇到了一些错误。1.实体:第1行:解析器错误:需要开始标记,“@user450784:如果要直接从url加载xml,则需要使用
simplexml\u load\u file()
。我已经更新了我的答案来反映这一点。如果$file\uXML从URL(api)返回为xml,会有什么不同吗?结构是:142141431100ALL当前我也在使用的信息:$objDOM=newdomdocument()$objDOM->load($file\u xml)$注意=$objDOM->getElementsByTagName(“详细信息”)@user450784:xml的结构应该是这样的。我刚刚尝试了您的代码,将$file_xml作为作为作为xml返回的数据的api url,但是我遇到了一些错误。1.实体:第1行:解析器错误:需要开始标记,“@user450784:如果要直接从url加载xml,则需要使用
simplexml\u load\u file()
。我更新了我的答案以反映这一点。
<Event ID="IDIDIDIDID">
   <EventName>EVENT NAME</EventName>
   <Artist>
      <ArtistName>ARTIST NAME</ArtistName>
   </Artist>

   <Venue ID="IDIDIDID">
    <VenueName>VENUE NAME</VenueName>
       <Image>
           <Url>IMAGE_URL</Url>
           <Width>205</Width>
           <Height>115</Height>
        </Image>
      </Venue>
 </Event>
$Image          = $value->getElementsByTagName("Image");
$venue_img_2    = $Image->item(1)->nodeValue;
$xml = simplexml_load_file($file_xml);

foreach($xml->Event as $event) {
    $idAttr = 'ID';

    $event_id = (string) $event->attributes()->$idAttr;
    $venue_id = (string) $event->Venue->attributes()->$idAttr;

    $venue_img_2 = (string) $event->Venue->Image->Url;
}
$xml = simplexml_load_file("books.xml") 
   or die("Error: Cannot create object");

  foreach($xml->children() as $books){
foreach($books->children() as $book => $data){
  echo $data->id;
  echo $data->title;
  echo $data->author;
  echo "<br />";
}