以前別人發佈過類似的問題,但不幸的是,沒有人能給出足夠的答案:Parse XML (SRU) with php 我想使用由SRU生成的XML文件,並使用PHP解析它以獲取特定內容這個XML文件。我對PHP和SRU完全陌生,所以也許你可以幫我解決一些初學者的問題。如何解析從SRU檢索到的XML文檔?
首先我想通過URL來獲取由SRU生成的XML文件:
<?php
$datasource='http://pub.uni-bielefeld.de/sru';
$fh = simplexml_load_file($datasource);
print_r($fh);
echo ("<br /> <br />");
?>
這給了我一個SimpleXMLElement,這仍是優良的輸出。此外,我檢查$ FH設置,而不是空:
<?php
if (empty($fh)) {
echo "fh is empty or isn't set.";
}
else {
echo "fh contains a value.\n";
}
if (isset($fh)) {
echo "fh is set.\n";
}
else {
echo "fh is not set.\n";
}
?>
這給了我預期的輸出$ FH包含一個值,它被設置爲可以通過生成輸出的事實可以看出。 後來我想獲取這個$ FH的元素,但它不會以這種方式工作:
<?php
$var1 = $fh->explainResponse->record->recordSchema;
echo "$var1";
?>
我還檢查$ VAR1與isset並清空就像我在上面的示例中checke $跳頻,並找出, $ var1沒有設置,它也是空的。當試圖運行該腳本,我得到該點的錯誤信息,我嘗試在內容來填充到$ VAR1:
Notice: Trying to get property of non-object in /var/www/testsite/sru_parse.php on line
27
也許這是一個非常簡單的錯誤,毀了我的腳本。即使你只是指出我可能已經忘記的東西,我也會很感激你的幫助。
哦,是的,和有關XML文件結構:
<explainResponse xmlns="http://www.loc.gov/zing/srw/">
<version>1.1</version>
<record>
<recordSchema>http://explain.z3950.org/dtd/2.0/</recordSchema>
<recordPacking>xml</recordPacking>
<recordData> .....
....
</recordData>
</record>
<echoedExplainRequest/>
</explainResponse>
XML文件的哪個部分是你想要得到的?你是否試圖獲得recordSchema的價值? – Jim 2012-08-07 12:37:16