SimpleXML 객체에서 노드 이름이 같은 노드를 중첩하여 검색하고 배열 인스턴스를 배열로 만들려면이 노드 이름을 사용하여 노드를 검색하고 싶습니다.SimpleXML (PHP)에서 이름으로 노드의 인스턴스를 가져옵니다.
HTML DOM에서는 getElementsByTagName()
을 사용하여 JavaScript로 할 수 있습니다. PHP에서도 그렇게 할 수 있습니까? 만 DOMDocument::getElementsByTagName에
SimpleXML 객체에서 노드 이름이 같은 노드를 중첩하여 검색하고 배열 인스턴스를 배열로 만들려면이 노드 이름을 사용하여 노드를 검색하고 싶습니다.SimpleXML (PHP)에서 이름으로 노드의 인스턴스를 가져옵니다.
HTML DOM에서는 getElementsByTagName()
을 사용하여 JavaScript로 할 수 있습니다. PHP에서도 그렇게 할 수 있습니까? 만 DOMDocument::getElementsByTagName에
예 사용 XPath는
$ XML->의 XPath ('// DIV - : 당신이 같은이있는 경우 Xpath에 대해 언급
또 다른 대답
그것은, 노드의 복제를 돌려줍니다 ');
여기 $ xml은 SimpleXML 개체입니다. 이 예에서
모든 'div의'요소
,
그러나, 당신은 import/export SimpleXML into DOMDocument,
또는 단순히는 XML을 구문 분석 할 수있는 DOMDocument를 사용할 수 있습니다.
<div><div>1</div></div>
$fname = dirname(__FILE__) . '\\xml\\crRoll.xml';
$dom = new DOMDocument;
$dom->load($fname, LIBXML_DTDLOAD|LIBXML_DTDATTR);
$root = $dom->documentElement;
$xpath = new DOMXpath($dom);
$xpath->registerNamespace('cr', "http://www.w3.org/1999/xhtml");
$candidateNodes = $xpath->query("//cr:break");
foreach ($candidateNodes as $child) {
$max = $child->getAttribute('tstamp');
}
의 배열을 얻을 것이다이 발견 한 모든 BREAK 노드 (tstamp의 ATTR) XPath를 사용하여 ...
감사합니다! 나는 전에 그것을 시도했다, 그러나 (왜 지옥은 이제까지) 작동하지 않았다. 이제 다시 시도하고 작동합니다. 어쩌면 캐시 문제 일 수 있습니다. : S – headacheCoder
아마 슬래시를 하나만 사용하셨습니까? 모든 요소를 찾으려면 2 //를 사용해야합니다. –