1
해결할 수없는 문제가 있습니다. 나는 다음과 같은 XML 파일의 MsgId
태그의 값을 검색 할 DOMXPath을 사용하고 있습니다 :DOMXPath - 노드 가져 오기
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CstmrCdtTrfInitn>
<GrpHdr>
<MsgId>Test/20171013/CCT100621</MsgId>
<CreDtTm>2017-10-13T10:06:21</CreDtTm>
<NbOfTxs>62</NbOfTxs>
</GrpHdr>
</CstmrCdtTrfInitn>
</Document>
다음 DOMXPath와 XML 쿼리 내 PHP 코드 조각입니다 :
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CstmrCdtTrfInitn>
<GrpHdr>
<MsgId>Test/20171013/CCT100621</MsgId>
<CreDtTm>2017-10-13T10:06:21</CreDtTm>
<NbOfTxs>62</NbOfTxs>
</GrpHdr>
</CstmrCdtTrfInitn>
</Document>
XML;
$document = new DOMDocument;
$document->loadXML($xml);
$groupHeaderXPath = new DOMXPath($document);
echo $groupHeaderXPath->query('//GrpHdr/MsgId')->length; // returns 0
내가 테스트 해요을 이 tool와의 쿼리는 정확하다고 보입니다.
xpath 표현이이 컨텍스트에서 작동하지 않는 이유는 누구입니까? 여기에 몇 가지 세부 사항이 빠졌습니까?
이 문제입니다. 네임 스페이스를 제거하면 모든 것이 기본 네임 스페이스에 있으므로 잘 작동합니다. – prodigitalson
고마워 완벽하게 :) – BwaBwa