2013-02-12 3 views
-4

Мне нужна быстрая помощь при чтении моего xml. Я показываю свой результат в всплывающей подсказке, и все готово. Я хочу запросить каждую партию по id один за другим. Мне нужен код РНР для каждой партии по их id Вот мой XMLxml и php - вывод текста

<section id="8" number="8" name="Section 8" phase="4" date="2/11/2013"> 
<lot id="2198" lot="2" block="1" section="8"> 
<number>2</number> 
<legal>L2-B1-S8 (60')</legal> 
<address>12107 Arbor Blue Lane</address> 
<builder>Perry Homes</builder> 
<status>Sold</status> 
<plan>3158</plan> 
<brick>Acme-StoneBriar</brick> 
<trim>SW-Portbello, Tea Chest</trim> 
<final_inspection_date/> 
<completion>5/23/2013</completion> 
<sqft>3158</sqft> 
<stories>2</stories> 

<bed>4</bed> 
<bath>3</bath> 
<garage>3</garage> 
<lotwidth>60'</lotwidth> 
<specprice>Sold</specprice> 
<imglocation>none</imglocation> 
<premium>off</premium> 
</lot> 
<lot id="2218" lot="22" block="1" section="8"> 
<number>22</number> 
<legal>L22-B1-S8 (60')</legal> 
<address>19503 Bella Arbor Lane</address> 
<builder>Perry Homes</builder> 
<status>Sold</status> 
<plan>3391</plan> 
<brick>Hanson-Chestnut Hill</brick> 
<trim>SW-Virtual Taupe, Smokehouse</trim> 
<final_inspection_date>12/3/2012</final_inspection_date> 
<completion>11/28/2012</completion> 
<sqft>3391</sqft> 
<stories>2</stories> 
<bed>4</bed> 
<bath>3</bath> 
<garage>3</garage> 
<lotwidth>60'</lotwidth> 
<specprice>Sold</specprice> 
<imglocation>3391w-e51.png</imglocation> 
<premium>off</premium> 
</lot> 
</section> 

Вот мой тест кода PHP

$xmldoc = new DOMDocument(); 
    $xmldoc->load('mydata.xml'); 

    $xpathvar = new Domxpath($xmldoc); 

    $queryResult = $xpathvar->query('//lot[@id="2198"]/address'); 
    foreach($queryResult as $result){ 
      echo $result->textContent; 

    } 

Это просто дает мне адрес. Как получить все остальные атрибуты? что теперь я могу использовать в моей подсказке как это

<div style="float:left"> 

<p style=" 
    margin: 0; 
    padding-left: 10px; 
    font-size: 13px; 
"><label style="color:grey">Status: </label>'.$status.'</p> 
<p style=" 
    margin: 0; 
    padding-left: 10px; 
    font-size: 13px; 
"><label style="color:grey">Builder: </label>'.$builder.'</p> 
<p style=" 
    margin: 0; 
    padding-left: 10px; 
    font-size: 13px; 
    width:200px 
"><label style="color:grey">Address: </label>'.$address.'</p> 
<p style=" 
    margin: 0; 
    padding-left: 10px; 
    font-size: 13px; 
"><label style="color:grey">Square Ft: </label>'.$square.'</p> 
<p style=" 
    margin: 0; 
    padding-left: 10px; 
    font-size: 13px; 
"><label style="color:grey">Stories: </label>'.$stories.'</p> 

<p style=" 
    margin: 0; 
    padding-left: 10px; 
    font-size: 13px; 
"><label style="color:grey">Completion: </label>'.$completion.'</p> 


<p style=" 
    margin: 0; 
    padding-left: 10px; 
    font-size: 13px; 
"><label style="color:grey">Plan #: </label>'.$plan.'</p> 
<p style=" 
    margin: 0; 
    padding-left: 10px; 
    font-size: 13px; 
"><label style="color:grey">B/B/G: </label>'.$bed.'/'.$bath.'/'.$garage.'</p> 
<p style=" 
    margin: 0; 
    padding-left: 10px; 
    font-size: 13px; 
"><label style="color:grey">Spec Price: </label>'.$specprice.'</p> 


</div> 
+0

Как обменивать '/ address' на другой атрибут в XPath? (или '*', если вы хотите их всех) –

ответ

0
//lot[@id="2198"]/address 

Вы спросили: «Это как раз дает мне адрес Как я могу получить все остальные атрибуты в списке?»

В Xpath, вы можете использовать звезду *, если вы не хотите, чтобы указать конкретное имя элемента:

//lot[@id="2198"]/* 

Пример: ZVON Example 3: The star * selects all elements located by preceeding path

Но ваш вопрос не был исключительно ясным для меня, так что этот ответ немного догадывается. Не обвиняйте меня, если это вам не поможет;)

Смежные вопросы