저는 개인적으로는 비교적 큰 XML 파일을 처리해야하는 재귀 PHP 함수를 작성하고 있습니다. 2-3 노드의 가치 만 필요하기 때문에 가능한 한 메모리 및 트래픽을 절약 할 수있는 방법을 모색했습니다. 그래서 예상대로 작동하지 않으며 PHP.net에서 잘 문서화되지 않은 PHP Object XMLReader를 발견했습니다. 나의 현재 코드는 다음XMLReader를 사용하여 XML 파일을 올바르게 처리하기
<?php
$reader = new XMLReader();
$reader->open('http://path.to.xml/file', 'UTF-8');
$att1 = $reader->getAttribute('att1');
$att2 = $reader->getAttribute('att2');
$reader->close();
echo var_dump($att1) . ' ' . var_dump($att2);
?>
이 순수 디버그입니다 볼 수 있지만, 그냥 문서에 따르면, 사건은 "입니다, 두 번, 밖으로 메아리 NULL로하면 주어진 가지는 속성 없습니다 이름이 발견되거나 [...] 요소 노드에 위치합니다. "
XML 구조는 (실제 파일보다 더 큰 500 개 라인이지만, 때로는 CDATA 태그가 포함) :
<parentnode>
<att1><![CDATA[ VAL1 ]]></att1>
<randomtags>randomval</randomtags>
<att2>VAL2</att2>
<foo>bar</foo>
</parentnode>
나는 XML과 거의 경험이 이전에는 SimpleXML을 사용 - 한 번. 전체 파일을 파싱하고 싶지는 않습니다.이 두 값만 분석합니다. 나는 이미 시도 무엇
:
- 이 <에 대해 getAttribute 매개 변수를 encapsing과>
- 정적으로 대해 getAttribute 방법
- 여러 가지 방법으로 부모 노드를 포함하도록 getAttribute를 매개 변수 변경을 호출
팁이나 힌트를 환영합니다. :)
아야 속성. 그것은 당황스럽고 XML 지식이 부족하다는 것을 증명합니다. :/지적 해 주셔서 고마워요, 지금부터는 어려운 길이 아니어야합니다. ^^ –
겸손에 대한 귀하의 의견에 +1. 당혹스럽지 마라! –