2017-10-09 101 views
0

我想在PHP中使用SimpleXML在XML中選擇一行。我有腳本代碼加載在XML看起來像這樣。SimpleXML節點選擇

<Row> 
     <Cell name="ID">S061102000000000000000006492017092915:13</Cell> 
    </Row> 

我有我的代碼來選擇名稱,但希望它選擇該名稱的值。目前我在PHP線看起來像這樣

<?php 
     $xml=simplexml_load_file("test.xml") or die("Error: Cannot create 
     object"); 

     echo "'".$xml->book[0]->title['name'] . "',<br>"; 
    ?> 

所以這顯然輸出文本

ID

但是我希望此行的值。只要你也知道有,我想從諸如

<Cell name="Name">First Name</Cell> 

回答

0

使用你的XML格式,代碼應該是這個樣子

$xml = '<Row> 
    <Cell name="ID">S061102000000000000000006492017092915:13</Cell> 
</Row>'; 

$data = new SimpleXMLElement($xml); 
echo "Name:" . $data->Cell["name"] . "\n"; 
echo "Value:" . (string)$data->Cell . "\n"; 

,或者如果你有超過

$xml = '<Row> 
    <Cell name="ID">S061102000000000000000006492017092915:13</Cell> 
    <Cell name="Name">Value</Cell> 
</Row>'; 

$data = new SimpleXMLElement($xml); 
foreach ($data as $cell) { 
    echo "Name:" . $cell["name"] . "\n"; 
    echo "Value:" . (string)$cell . "\n"; 
} 
+1

'echo'ing強制轉換成字符串數據處理多個單元格標記,循環隱含地如此,演員操作是沒有必要的。 – ishegg

+2

回聲只是一個例子 - 通常你會在其他地方使用該值 - 即對於substr或某種東西。如果在這種情況下忘記了強制轉換,則會出現一些對象到字符串轉換的錯誤/警告。所以我暗中寫道 – Philipp

0

內容爲什麼你得到屬性name,如果你想獲得標籤的身體更細胞名稱值?

而不是

$xml->book[0]->title['name'] 

您應該使用

$xml->book[0]->title 

你的情況應該是

$xml->Row[0]->Cell 

您可以瞭解更多關於歌廳節點/屬性值here