>백엔드 개발 >PHP 튜토리얼 >SimpleXML의 XPath를 사용하여 네임스페이스 XML을 올바르게 구문 분석하는 방법은 무엇입니까?

SimpleXML의 XPath를 사용하여 네임스페이스 XML을 올바르게 구문 분석하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-18 10:05:10615검색

How to Correctly Parse Namespaced XML with SimpleXML's XPath?

SimpleXML을 사용하여 네임스페이스로 XML을 구문 분석하는 방법

문제:

구문 분석을 시도할 때 SimpleXML을 사용하는 네임스페이스가 있는 XML, RegisterXPathNamespace() 관련 문제 발생 method.

XML 구조:

<root xmlns:event="http://www.webex.com/schemas/2002/06/service/event">
  <event:event>
    <event:sessionKey>...</event:sessionKey>
    ...
  </event:event>
  ...
</root>

Xpath 쿼리 예:

'event:sessionKey' 추출 시도 가치 사용:

$xml->registerXPathNamespace('e', 'http://www.webex.com/schemas/2002/06/service/event');
$event->xpath('//e:sessionKey')

해결책:

문제는 XPath 쿼리에서 네임스페이스 접두사('e')와 전체 네임스페이스 URI가 모두 필요하다는 것입니다. , RegisterXPathNamespace()를 사용하지 않고도 가능합니다.

수정됨 코드:

$xml = new SimpleXMLElement($r);

foreach ($xml->xpath('//event:event') as $event) {
  var_export($event->xpath('event:sessionKey'));
}

위 내용은 SimpleXML의 XPath를 사용하여 네임스페이스 XML을 올바르게 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.