현재 위치: > 최신 기사 목록> php xpath 함수로 SimpleXML로 XML을 구문 분석하는 방법은 무엇입니까? 자세한 사용 예제 공유

php xpath 함수로 SimpleXML로 XML을 구문 분석하는 방법은 무엇입니까? 자세한 사용 예제 공유

gitbox 2025-08-25

2. XPath 소개

XPath는 XML 문서에서 노드를 찾는 데 사용되는 언어입니다. SimpleXML에는 xpath 표현식을 사용하여 쿼리 노드를 사용할 수있는 xpath () 메소드가 함께 제공됩니다.


3. XPATH를 사용하여 XML을 구문 분석하는 예

다음 XML에서 모든 노드를 가져와야한다고 가정하십시오. 저자는 "Li Si"라는 책 제목입니다.

 <span><span><span class="hljs-variable">$xmlString</span></span><span> = <span class="hljs-string">&lt;&lt;&lt;XML
&lt;books&gt;
    &lt;book id="1"&gt;
        &lt;title&gt;PHP시작하기&lt;/title&gt;
        &lt;author&gt;장 산&lt;/author&gt;
    &lt;/book&gt;
    &lt;book id="2"&gt;
        &lt;title&gt;XML</span>실제 전투를 분석하십시오&lt;/title&gt;
        &lt;author&gt;Li Si&lt;/author&gt;
    &lt;/book&gt;
    &lt;book id=</span><span><span class="hljs-string">"3"</span></span><span>&gt;
        &lt;title&gt;심층적 인 이해PHP&lt;/title&gt;
        &lt;author&gt;Li Si&lt;/author&gt;
    &lt;/book&gt;
&lt;/books&gt;
XML;

</span><span><span class="hljs-variable">$xml</span></span><span> = </span><span><span class="hljs-title function_ invoke__">simplexml_load_string</span></span><span>(</span><span><span class="hljs-variable">$xmlString</span></span><span>);

</span><span><span class="hljs-comment">// XPath질문author为Li Si的book마디</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$xml</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">xpath</span></span><span>(</span><span><span class="hljs-string">"//book[author='Li Si']"</span></span><span>);

</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$book</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"책 제목:"</span></span><span> . </span><span><span class="hljs-variable">$book</span></span><span>-&gt;title . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>

실행 결과 :

 <span><span>책 제목:</span><span><span class="hljs-type">XML</span></span><span>실제 전투를 분석하십시오
책 제목:심층적 인 이해PHP
</span></span>

4. xpath 표현 설명

  • // 책 : 모든 노드를 선택하십시오

  • [저자 = 'li si'] : 필터링 조건, 저자 노드 값 "li si"가있는 책 노드를 선택하십시오.


V. 더 실용적인 예

1. 노드 속성을 가져옵니다

모든 ID 속성을 얻으십시오.

 <span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$xml</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">xpath</span></span><span>(</span><span><span class="hljs-string">"//book"</span></span><span>) </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$book</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"책ID:"</span></span><span> . </span><span><span class="hljs-variable">$book</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>

2. 복잡한 쿼리

1보다 큰 ID 가있는 책을 받으세요 :

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$xml</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">xpath</span></span><span>(</span><span><span class="hljs-string">"//book[@id &gt; 1]"</span></span><span>);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$book</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$book</span></span><span>-&gt;title . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>

6. 요약

  • simplexml_load_string () 또는 simplexml_load_file ()을 사용하여 xml로드하십시오.

  • XPath () 메소드를 사용하여 XPath 표현식으로 노드를 유연하게 찾으십시오.

  • 속성 배열을 통해 노드 속성에 액세스 할 수 있습니다.

  • XPath 표현식은 강력하며 여러 필터링 및 경로 위치를 지원할 수 있습니다.

SimpleXML과 XPath의 조합을 마스터하면 PHP 개발자가 다양한 XML 데이터를 효율적으로 처리하여 프로그램 유연성과 유지 관리를 향상시킬 수 있습니다.