XML

2014-04-24 2 views
-1
나는이 XML 코드에서 PHP 값의 위도, 경도를 얼마나 잘 모릅니다

에 CDATA에서 값을 가져 오기 :XML

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://earth.google.com/kml/2.1"> 
<Document> 
<name>OpenCellID Cells</name> 
<description>List of available cells</description> 
<Placemark><name></name><description><![CDATA[lat: <b>3.378199</b><br/>lon: <b>-76.523528</b><br/>mcc: <b>732</b><br/>mnc: <b>123</b><br/>lac: <b>4003</b><br/>cellid: <b>26249364</b><br/>averageSignalStrength: <b>0</b><br/>samples: <b>10</b><br/>changeable: <b>1</b>]]></description><Point><coordinates>-76.523528,3.378199,0</coordinates></Point></Placemark> 
</Document> 
</kml> 

을 당신이 좀 도와 수 있기를 바랍니다. 감사합니다

+0

먼저 XML에서 HTML 스 니펫을 읽고 다른 DOM 초에로드하십시오. http://stackoverflow.com/a/22490106/2265374 – ThW

답변

0

트릭은 먼저 cdata를 문자열로 읽는 것입니다. libxml이이를 welformatted html로 감싸고 데이터를 포함하는 노드에서 값을 파싱하게하십시오. 이 작동하지만 그 경도를 가정하고 CDATA

// the xml as a variable 
$xml = '<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://earth.google.com/kml/2.1"> 
<Document> 
<name>OpenCellID Cells</name> 
<description>List of available cells</description> 
<Placemark><name></name><description><![CDATA[lat: <b>3.378199</b><br/>lon:  <b>-76.523528</b><br/>mcc: <b>732</b><br/>mnc: <b>123</b><br/>lac: <b>4003</b><br/>cellid: <b>26249364</b><br/>averageSignalStrength: <b>0</b><br/>samples: <b>10</b><br/>changeable: <b>1</b>]]></description><Point><coordinates>-76.523528,3.378199,0</coordinates></Point></Placemark> 
</Document> 
</kml>'; 

// read into dom 
$domdoc = new DOMDocument(); 

$domdoc->loadXML($xml); 

// the cdata as a string 
$cdata = $docdom->getElementsByTagName('Placemark')->item(0)->getElementsByTagName('description')->item(0)->nodeValue; 

// a dom object for the cdata 
$htmldom = new DOMDocument(); 

// wrap in html and parse 
$htmldom->loadHTML($cdata); 

// get the <b> nodes 
$bnodes = $htmldom->getElementsByTagName('b'); 

// your data :) 
$lon = $bnodes->item(0)->nodeValue; 
$lat = $bnodes->item(1)->nodeValue; 

마지막없는 최소한의 첫 번째 노드에 항상 위도 것을

참고,이 loadXML 및 loadHTML이 다른 방법과 그것을 사용하는 방법을 설명하는 것입니다. googleeart kml에 대해서는 더 일반적인 방법이라고 생각합니다.