2014-01-17 3 views
0

вот мой файл XML файл note.xmlКак выбрать данные из xml-файла по атрибуту?

<?xml version="1.0" encoding="ISO-8859-1"?> 
<agents> 
    <agent> 
    <id>1</id> 
    <image> img/primary-nav-logo.png</image> 
    <name>Tommy Jenkin</name> 
    <company>CJenkins Insurance</company> 
    <street>Insurance150 S State Stree</street> 
    <city>Linkend</city> 
    <phone>(773) 561-4331</phone> 
    </agent> 
    <agent> 
    <id>2</id> 
    <image> img/primary-nav-logo.png</image> 
    <name>Tommy Jenkin</name> 
    <company>CJenkins Insurance</company> 
    <street>Insurance150 S State Stree</street> 
    <city>Linkend</city> 
    <phone>(773) 561-4331</phone> 
    </agent> 
</agents> 

и я должен напечатать XML-запись с идентификатором 1, и я должен написать код в PHP, как этот

<?php 
    $xml = simplexml_load_file("note.xml") or die("Error: Cannot create object"); 
    foreach($xml->xpath('//agent') as $item) { 
    $row = simplexml_load_string($item->asXML()); 
    $v = $row->xpath('//id[. ="1"]'); 
    if($v[0]){ 
     print $item->id; 
     print $item->image; 
     print $item->name; 
     print $item->company; 
     print $item->street; 
     print $item->city; 
     print $item->phone; 
    } 
    else{ 
     echo 'No records'; 
    } 
?> 

пожалуйста, предложите мне, где я нахожусь неправильно

ответ

0

у вас есть severall путь, вот один из них

$xml = new DOMDocument(); 
$xml->loadXML($input); 
$agents= $xml->getElementsByTagName("agent"); 
foreach ($agents as $agent) { 
    $elements = $xml->getElementsByTagName("id"); 
    $id = $elements->item(0)->nodeValue; 
} 
0

Слишком сложно, сделайте это так:

$xml = simplexml_load_file("note.xml") or die("Error: Cannot create object"); 
$results = "/agents/agent[id = '1']"; 
foreach($results as $item) { 

    print $item->id; 
    print $item->image; 
    // etc   
} 
Смежные вопросы