Chaps, 我試圖用SimpleXml獲取以下XML中'文件'節點的屬性,但每次都會讓我回到空。我已成功獲取學習節點的屬性,但未能獲取'文件'atts。使用PHP SimpleXML從內部節點獲取XML屬性失敗
這裏是XML:
<?xml version="1.0" encoding="UTF-8"?>
<studies>
<study uid="1.3.12.2" acc="181">
<date>20051218</date>
<time>2156</time>
<ref>CG</ref>
<desc>Abdomen</desc>
<id></id>
<path>S00001</path>
<modality>CR</modality>
<reports>
<file cat="UNK" date="20141124">Card_Cloud.txt</file>
</reports>
</study>
這裏是我的代碼:
$studyXML = new SimpleXMLElement($studyXML);
$studyXML_array = array();
foreach ($studyXML ->study as $study)
{
// Getting uid and accession from XML attributes
$uid = (!empty($study)) ? (String)$study->attributes()->uid : '';
$acc = (!empty($study)) ? (String)$study->attributes()->acc : '';
// Getting the reports and putting them in an array
$reports = array();
foreach($study->reports as $rep)
{
$cat = (String)$rep->attributes()->cat;
$reports[] = (String)$rep->file;
}
// Constructing the xml as an array
$studyXML_array[] = array
(
'uid' => $uid,
'acc' => $acc,
'date' => (String)$study->date,
'reports' => $reports
);
}
我可以得到 「UID」 和 「ACC」,但我不能讓「貓「和」日期「在文件節點內。 當我在調試變量中查看xml的數組時,我可以看到uid和acc屬性,但沒有cat和date屬性的符號。
我會很感激任何幫助。
我更願意堅持使用SimpleXML,因爲我所有的代碼都使用到目前爲止。
乾杯
因爲您已經有了一個對象,您不需要創建一個數組,您呢? – hakre 2014-12-22 15:37:55