PHP 무시 네임 스페이스에 DOMXPath과 XML 속성을 얻기 :내가 XML 파일이
<Receipt Version="2.0" ReceiptDate="2012-08-30T23:10:05Z" CertificateId="A656B9B1B3AA509EEA30222E6D5E7DBDA9822DCD" xmlns="http://schemas.microsoft.com/windows/2012/store/receipt">
....
</Receipt>
을 나는 PHP에서 XPath를 함께 CertificateId
을 얻으려고 :
$doc = new DOMDocument();
$doc->loadXML($v);
$xpath = new DOMXPath($doc);
$query = 'string(/Receipt/@CertificateId)';
$id = $xpath->evaluate($query);
$id
무효이며 Msft
이 있기 때문에 이 링크를 포기 했으므로 namespace에 액세스 할 수 없습니다. 즉, CertificateId
네임 스페이스를 무시해야합니다. XML에서 네임 스페이스 문자열을 제거하면 코드가 작동하지만 XML을 편집하지 않는 것이 좋습니다. local-name()
XPath 함수를 사용하여이 작업을 수행 할 수 있다는 것을 알고 있지만 어떻게 PHP로이 작업을 수행 할 수 있습니까?
는 여기에 내가 DOM에서 읽어 방법은 다음과 같습니다
$id = null;
if ($doc->childNodes->length > 0)
{
$root = $doc->childNodes->item(0);
if ($root->nodeName == 'Receipt')
$id = $root->attributes->getNamedItem('CertificateId')->nodeValue;
}
이 코드 네임 스페이스를 무시합니다. 그러나 XPath를 사용하여이를 수행하는 방법은 무엇입니까?
*이 * 왜/당신이 * * 사용할 수없는 방법 '로컬 이름이 "나는 그것이 로컬 이름()'의 XPath의 기능,하지만 난 PHP에서이 작업을 수행 할 수있는 방법?'수행 할 수있어"()'PHP에서? – har07
정보 수정 방법을 찾을 수 없습니다. 까다로운 구문 – Tertium