$dom = new DOMDocument();
$dom->load('파일경로');
$xpath = new DOMXPath($dom);
$query = 'ns:userquery';
$xpath->registerNamespace("ns", "naver:openapi");
$emps = $xpath->query($query);
foreach ($emps as $emp) {
print $emp->nodeValue;
}
아래와 같은 xml일 경우 위와 같이 코딩해 사용한다.
namespace가 없을 경우엔, 아래와 같이 query변수를 지정하고, $xpath->registerNamespace("ns", "naver:openapi");는 사용하지 않는다. 하위노드일 경우에도 무조건 ns를 붙여야 한다. (cf. ns:item/ns:point/ns:x)
foreach를 사용하지 않으려면,
$result = $xpath->query($query)->nodeValue;
등으로 값을 얻을 수 있으며, rss의 item처럼 동일 이름의 다중 노드들이 존재하면
$query="/rss/channel/item/title";
$result = $xpath->query($query)->item(n)->nodeValue;
으로, n에 순서를 지정해 값을 얻을 수 있다.
$query = '//geocode/userquery';
<?xml version="1.0" encoding="utf-8" ?>
<geocode xmlns="naver:openapi">
<userquery>
<![CDATA[ 경기도성남시정자1동25-1 ]]>
</userquery>
<total>1</total>
<item>
<point>
<x>321060.0</x>
<y>529720.0</y>
</point>
<address>경기도 성남시 분당구 정자1동 25-1</address>
<addrdetail>
<sido>
<![CDATA[ 경기도 ]]>
<sigugun>
<![CDATA[ 성남시 분당구 ]]>
<dongmyun>
<![CDATA[ 정자1동 ]]>
<rest>
<![CDATA[ 25-1 ]]>
</rest>
</dongmyun>
</sigugun>
</sido>
</addrdetail>
</item>
</geocode>
$dom->load('파일경로');
$xpath = new DOMXPath($dom);
$query = 'ns:userquery';
$xpath->registerNamespace("ns", "naver:openapi");
$emps = $xpath->query($query);
foreach ($emps as $emp) {
print $emp->nodeValue;
}
아래와 같은 xml일 경우 위와 같이 코딩해 사용한다.
namespace가 없을 경우엔, 아래와 같이 query변수를 지정하고, $xpath->registerNamespace("ns", "naver:openapi");는 사용하지 않는다. 하위노드일 경우에도 무조건 ns를 붙여야 한다. (cf. ns:item/ns:point/ns:x)
foreach를 사용하지 않으려면,
$result = $xpath->query($query)->nodeValue;
등으로 값을 얻을 수 있으며, rss의 item처럼 동일 이름의 다중 노드들이 존재하면
$query="/rss/channel/item/title";
$result = $xpath->query($query)->item(n)->nodeValue;
으로, n에 순서를 지정해 값을 얻을 수 있다.
$query = '//geocode/userquery';
<?xml version="1.0" encoding="utf-8" ?>
<geocode xmlns="naver:openapi">
<userquery>
<![CDATA[ 경기도성남시정자1동25-1 ]]>
</userquery>
<total>1</total>
<item>
<point>
<x>321060.0</x>
<y>529720.0</y>
</point>
<address>경기도 성남시 분당구 정자1동 25-1</address>
<addrdetail>
<sido>
<![CDATA[ 경기도 ]]>
<sigugun>
<![CDATA[ 성남시 분당구 ]]>
<dongmyun>
<![CDATA[ 정자1동 ]]>
<rest>
<![CDATA[ 25-1 ]]>
</rest>
</dongmyun>
</sigugun>
</sido>
</addrdetail>
</item>
</geocode>
댓글 달기