>  기사  >  백엔드 개발  >  PHP 작동: XPath를 사용하여 XML 문서에서 데이터 추출

PHP 작동: XPath를 사용하여 XML 문서에서 데이터 추출

PHPz
PHPz원래의
2023-06-13 22:03:081632검색

XPath는 PHP를 사용하여 XML 데이터로 작업할 때 매우 유용한 도구입니다. XPath는 XML 문서에서 요소를 찾기 위한 언어입니다. 이는 개발자가 XML 문서에서 필요한 데이터를 빠르고 쉽게 추출하는 데 도움이 됩니다.

이 글에서는 XPath의 기본 개념을 소개하고 PHP에서 XPath를 사용하는 방법을 자세히 설명합니다. XPath를 사용하여 XML 문서에서 데이터를 추출하는 방법과 간단한 PHP 애플리케이션을 구축하여 XPath의 강력한 기능을 보여주는 방법을 보여드리겠습니다.

XPath란 무엇인가요?

XPath는 XML 문서에서 노드를 찾는 언어입니다. 경로 표현식을 사용하여 문서의 요소와 속성을 설명합니다. XPath 표현식은 XML 문서의 구조를 기반으로 하며 노드 또는 노드 집합을 선택하는 데 사용됩니다.

XPath는 W3C에서 표준화한 독립 표준입니다. XPath 표현식은 PHP를 포함한 다양한 프로그래밍 언어에서 사용할 수 있습니다.

XPath 표현식 구문

XPath 표현식은 경로 표현식을 사용하여 XML 요소 및 속성을 설명합니다. 경로 표현식은 일련의 노드, 관계 연산자 및 조건자로 구성됩니다.

다음은 XPath 표현식의 몇 가지 기본 구문입니다.

  • /: 루트 요소 선택
  • //: 임의의 위치에서 요소 선택
  • .: 현재 노드 선택
  • ..: 상위 노드 선택
  • @: 속성 선택

XPath의 조건자를 사용하면 특정 노드를 선택할 수 있습니다. 다음은 조건자의 몇 가지 예입니다.

  • [id]: id 속성을 포함하는 요소 선택
  • [position()]: 위치가 조건을 충족하는 요소 선택

XPath는 논리 연산자, 일치 등 여러 연산자를 지원합니다. 술어 및 산술 연산자 등

PHP용 XPath

PHP에서는 DOM 확장을 사용하여 XML 문서를 구문 분석하고 XPath 표현식을 사용하여 문서의 노드를 검색하고 수정할 수 있습니다.

다음은 XML 문서에서 노드를 선택하기 위한 기본 PHP 스크립트입니다.

$xml = new DOMDocument();
$xml->load("products.xml");

$xpath = new DOMXPath($ xml);
$nodes = $xpath->query("//name");

foreach ($nodes as $node) {

echo $node->nodeValue . "

";
}

위 코드는 DOMDocument 클래스를 사용합니다. XML 문서를 작성한 다음 DOMXPath 클래스를 사용하여 XPath 쿼리를 수행합니다. 이 예에서는 문서의 모든 이름 요소를 쿼리하고 각 요소의 노드 값을 반복합니다.

XPath 예제

이제 더 많은 것을 보여드리겠습니다. XPath를 사용하여 XML 문서에서 데이터를 추출하는 복잡한 예

우리는 여러 책 정보가 포함된 다음 XML 문서를 사용합니다:

ce50429e6a697f79b7d15c02f2ed0b64
22c2f4f615377aab01ad5993c9a2aaf0

<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>

0f6fa65eb6c7f3ed4374d12bf4ac01bd
e3f9fedabdfbf09a2cc070e0e61754be

<title lang="en">Harry Potter</title>
<author>J.K. Rowling</author>
<year>2005</year>
<price>29.99</price>

0f6fa65eb6c7f3ed4374d12bf4ac01bd
e228e1defa7a7bb9b56562abaff8c1a9

<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>

0f6fa65eb6c7f3ed4374d12bf4ac01bd
adcb83d22f39c33cc25e1b3e5b18e55f

이제 카테고리가 "cooking"인 모든 책을 쿼리하고 제목과 가격을 출력한다고 가정해 보겠습니다. 이렇게 하려면 할 수 있습니다. 다음 PHP 코드를 작성합니다:

$xml = new DOMDocument();
$xml->load("books.xml");

$xpath = new DOMXPath($xml);
$nodes = $xpath- > ;query("//book[@category='cooking']");

foreach ($nodes as $node) {

$title = $xpath->query("title", $node)->item(0)->nodeValue;
$price = $xpath->query("price", $node)->item(0)->nodeValue;
echo "Title: $title, Price: $price

";
}

위 코드는 쿼리 메소드에서 XPath 표현식을 전달합니다. 조건을 충족하는 노드를 찾고 for 루프를 사용하여 모든 노드를 순회하는 공식입니다. 각 노드에 대해 XPath 쿼리를 사용하여 제목 및 가격 속성을 추출합니다.

이 예에서는 술어 [@category='cooking']를 사용하여 카테고리 속성이 요리인 책 요소를 선택하고 $xpath->query("title", $node)->item( 0)->nodeValue는 제목을 추출합니다. 마찬가지로 $xpath->query("price", $node)->item(0)->nodeValue를 사용하여 가격을 추출합니다.

결론

XPath는 XML 문서에서 데이터를 추출하고 노드를 검색하는 강력한 방법을 제공합니다. PHP에서는 DOM 확장을 사용하여 XML 파일을 구문 분석하고 XPath를 사용하여 노드를 쿼리하고 수정할 수 있습니다. 이를 통해 XML 데이터 작업이 훨씬 쉽고 효율적이게 되므로 대량의 XML 데이터를 빠르고 효율적으로 처리하는 데 이상적인 솔루션이 됩니다.

위 내용은 PHP 작동: XPath를 사용하여 XML 문서에서 데이터 추출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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