SimpleXML을 사용하여 여러 네임스페이스가 있는 XML 구문 분석
SimpleXML을 사용할 때 여러 네임스페이스가 있는 XML 문서를 구문 분석하는 것이 문제가 됩니다. 이러한 문서를 성공적으로 구문 분석하려면 네임스페이스 선언을 처리해야 합니다.
제공된 XML 문서에는 여러 네임스페이스가 있습니다.
<code class="xml"><soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <soap-env:Header> <eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader"> ... </eb:MessageHeader> <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"> ... </wsse:Security> </soap-env:Header> <soap-env:Body> <SessionCreateRS xmlns="http://www.opentravel.org/OTA/2002/11"> ... </SessionCreateRS> </soap-env:Body> </soap-env:Envelope></code>
SimpleXML로 이 문서를 구문 분석하려면 다음 단계를 수행할 수 있습니다.
<code class="php">$xml = simplexml_load_string($xmlString);</code>
<code class="php">$xml->registerXPathNamespace('soap-env', 'http://schemas.xmlsoap.org/soap/envelope/'); $xml->registerXPathNamespace('eb', 'http://www.ebxml.org/namespaces/messageHeader'); $xml->registerXPathNamespace('wsse', 'http://schemas.xmlsoap.org/ws/2002/12/secext');</code>
<code class="php">foreach ($xml->xpath('//eb:MessageHeader') as $header) { var_dump($header->xpath('//eb:CPAId')); // Outputs "something" }</code>
다음 단계를 따르면 여러 네임스페이스가 있는 XML 문서를 성공적으로 구문 분석할 수 있습니다. SimpleXML을 사용하면 각 네임스페이스 내의 요소에 효과적으로 액세스하고 조작할 수 있습니다.
위 내용은 SimpleXML을 사용하여 여러 네임스페이스가 있는 XML을 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!