感謝Frank Farmer和Dan Beam解決了這個問題。
這工作:echo (string)$check_reo[0][0]['ReclaimDate']
對於任何人正在使用的SimpleXML和XPath提取並從一個XML文件,這是什麼工作對我來說寫一些基本的邏輯。
$xmlstring = <<<XML <?xml version='1.0' standalone='yes'?> <YOURXMLGOESHERE>TEST</YOURXMLGOESHERE> XML;
$xpathcount = simplexml_load_string($xmlstring); // Load XML for XPATH Node Counts
$doc = new DOMDocument(); // Create new DOM Instance for Parsing
$xpathcountstr = $xpathcount->asXML(); // Xpath Query
$doc->loadXML($xpathcountstr); // Load Query Results
$xpathquery = array($xpathcount->xpath("//XMLNODEA[1]/XMLNODEB/*[name()='KEYWORDTOCHECKIFXMLCEXISTS']"));
print_r ($xpathquery) // CHECK Array that is returned from the XPATH query
`陣列 ( [0] =>數組 ( [0] => SimpleXMLElement對象 ( [@屬性] =>數組 ( [ReclaimDate] => 2008年5月15日 [ReclaimPrice] => 555555555 [_Owner] => OWNERNAME )
)
) // Array RETURNED`
echo (string)$xpathquery[0][0]['ReclaimDate'] // EXTRACT THE VALUE FROM THE ARRAY COLUMN;
本網站幫助我更好地瞭解XPATH如何通過比我以前所知的更多功能輕鬆搜索XML。
http://zvon.org/xxl/XPathTutorial/Output/examples.html
下面是簡單的XML功能爲我工作
$xmlread = simplexml_load_string($xmlstring, "simple_xml_extended");
`simple_xml_extended類擴展的SimpleXMLElement {//讀取XML並獲得屬性 公共職能屬性($名){ foreach($ this-> Attributes()as $ key => $ val){ if($ key == $ name) return(string)$ val;
}
}
}`
下面是函數動作與屬性基於XML提取單值時,會導致
$GETVAR1 = $xmlread->XMLNODE1->XMLNODE2->XMLNODE3->XMLNODE4->XMLNODE5[0]->Attribute('XMLNODE5ATTRIBUTE');
這可能不是最有效的還是最好的方法,但其什麼結束了爲我工作。希望這可以幫助那些仍然不清楚SIMPLEXML和XPATH的人。
一個額外的鏈接,進一步瞭解:http://www.phpfreaks.com/tutorial/handling-xml-data
你可能尋找類似'(串)$ MYVAR [0] [0] [ 'ReclaimDate']' - 如果你能提供一個簡短的例子doc和示例代碼,那麼提供可保證工作的解決方案會更容易。順便說一句,你鏈接的SO帖子看起來不是關於SimpleXML的,所以它可能沒有幫助。 – 2011-06-14 02:58:10
您可以發佈響應數據(或其URL)和/或您用來將此數據作爲SimpleXMLElement使用的PHP嗎? – 2011-06-14 02:59:01