이것은 내 코드이며 Xpath를 사용하여 xml의 값을 표시하려고하지만 이것을 실행하면 코드에 오류가 발생합니다.
다음은 코드입니다.
<?php
$load = new DOMDocument();
$load = simplexml_load_file("testing.xml");
var_dump($load);
$xpath = new DOMXpath($load);
var_dump($xpath);
$path1 = "/clip/metadata[name=keywords]/value";
$query = $xpath->query($path1);
var_dump("$query");
?>
이것은 내가 얻는 오류입니다.
Catchable fatal error: Argument 1 passed to DOMXPath::__construct() must be an instance of DOMDocument, instance of SimpleXMLElement given in C:\xampp\htdocs\xml-text\index.php on line 5
오류에서 언급했듯이 SimpleXmlElement
객체 대신 객체를 전달 DOMDocument
합니다.
내 이전 답변이 잘못되었습니다. a SimpleXmlElement
를 DOMElement
not a 로 변환하는 방법을 보여주었습니다 DOMDocument
.
http://php.net/manual/en/domdocument.load.php 는 xml 파일을 DOMDocument
개체 에 올바르게로드하는 방법 입니다.
$load = new DOMDocument();
$load->load("testing.xml");
$xpath = new DOMXpath($load);
특히 키워드라는 이름의 노드 값을 얻으려면 다음과 같이 할 것입니다.
$load = new DOMDocument();
$load->preserveWhiteSpace = false;
$load->load(__DIR__ . "/testing.xml");
$xpath = new DOMXpath($load);
$path1 = '//clip/metadata/name[ . = "Keywords"]';
$query = $xpath->query($path1);
foreach($query as $entry) {
$value = $entry->parentNode->childNodes->item(1)->nodeValue;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다