>  기사  >  백엔드 개발  >  PHP 크롤러: XPath를 사용하여 XML 문서를 구문 분석하는 방법

PHP 크롤러: XPath를 사용하여 XML 문서를 구문 분석하는 방법

王林
王林원래의
2023-06-13 15:16:051275검색

인터넷 시대에 데이터는 매우 중요한 자산입니다. 인터넷에서 데이터를 얻는 방법은 크롤러입니다. 크롤러란 실제 사용자가 웹사이트를 방문하도록 시뮬레이션하고 프로그램을 통해 웹페이지의 데이터를 자동으로 크롤링하는 것을 말합니다. PHP 크롤러는 다양한 웹사이트에서 데이터를 크롤링하고 데이터 분석, 처리 및 마이닝을 통해 우리에게 풍부한 정보와 리소스를 제공할 수 있는 매우 중요한 것입니다. PHP 크롤러에서 XPath를 사용하여 XML 문서를 구문 분석하는 것은 매우 중요한 기술입니다. 이 기사에서는 XPath가 무엇인지, XPath의 구문, XPath가 PHP 크롤러에 적용되는 방법을 자세히 소개합니다.

1. XPath란 무엇인가요?

XPath는 XML 문서 형식의 정보를 찾는 데 사용되는 언어입니다. XPath는 경로 표현식을 사용하여 XML 문서에서 노드 또는 노드 그룹을 선택할 수 있습니다. XPath는 XML 경로 언어인 XML Path Language의 약어입니다. XPath는 XML 문서에서 특정 요소를 찾고 경로 표현을 사용하여 문서의 구조를 파악하여 문서에서 특정 데이터를 찾습니다.

2. XPath 구문

XPath의 기본 구문에는 경로 표현식, 노드, 조건자(Predicates)가 포함되며, 이에 대해 아래에서 자세히 소개합니다.

  1. 경로 표현

경로 표현은 XPath의 핵심 구문입니다. 슬래시 기호 "/" 또는 이중 슬래시 기호 "//"로 시작하는 문자열로, 문서를 찾는 데 사용됩니다. 액세스된 노드 또는 노드 그룹입니다. 예를 들어 다음 경로 표현식은 문서의 모든 최상위 책 요소를 선택합니다.

/bookstore/book

  1. 노드

XPath에서 노드는 XML 문서의 요소, 속성, 텍스트, 네임스페이스, 처리 지침 등으로 정의될 수 있습니다. 경로 표현식은 슬래시 기호를 사용하여 XML 문서의 노드 아래로 탐색할 수 있습니다. 예를 들어 "/"는 루트 노드를 나타내고, "bookstore"는 XML 문서의 루트 노드 아래에 있는 첫 번째 수준 노드를 나타내며, "book"은 다음 수준에 있는 book이라는 모든 노드를 나타냅니다.

  1. Predicates

XPath의 predicate는 조건에 맞는 노드를 필터링할 수 있는 조건문입니다. 술어의 표현식은 대괄호 "[]"로 표시됩니다. 예를 들어, 다음 예의 조건자는 [@category='WEB']입니다. 이는 카테고리 속성 값이 'WEB'인 책 노드를 선택한다는 의미입니다.

/bookstore/book[@category='WEB']

3. XPath가 PHP 크롤러에 적용되는 방법

PHP 크롤러에서는 DOMDocument 클래스와 DOMXPath 클래스를 사용하여 입력 XML 문서를 처리할 수 있습니다. 그 중 DOMDocument 클래스는 XML 문서를 구문 분석하는 데 사용되는 반면, DOMXPath 클래스는 XPath 표현식을 기반으로 DOMDocument 개체에서 노드를 선택하기 위한 API(응용 프로그래밍 인터페이스)입니다.

XPath 구문 분석 XML 문서를 구현하려면 PHP 파일에 다음 코드를 추가하세요.

$url = 'http://example.com/data.xml'; // XML 文档路径
$xml = file_get_contents ($url); //读取 XML 文件
$doc = new DOMDocument(); 
$doc->loadXML($xml); //载入 XML 文件
 
$xpath = new DOMXPath($doc); 
$query = "//bookstore/book[@category='WEB']"; //XPath 表达式
 
$books = $xpath->query($query);
 
foreach ($books as $book){ 
    echo $book->getAttribute("title") . "
"; //打印符合条件的 book 节点 title 属性
}

위 코드의 기능:

  1. XML 파일을 읽고 로드하세요.
  2. XPath 표현식을 호출하려면 DOMXPath 클래스를 사용하세요.
  3. query() 메서드를 사용하여 노드 개체 목록을 반환합니다. 이 목록에는 조건을 충족하는 모든 책 노드가 포함됩니다.
  4. foreach 루프를 사용하여 조건을 충족하는 책 노드의 제목 속성을 인쇄합니다.

위 코드에서 "//bookstore/book[@category='WEB']"는 카테고리 속성 값이 'WEB'인 book이라는 이름의 모든 노드를 선택한다는 의미입니다.

4. 요약

XPath 구문의 단순성과 유연성은 PHP 크롤러에 많은 편의성을 제공합니다. XPath 구문과 PHP 크롤러의 조합은 인터넷 데이터 획득 문제를 해결합니다. XPath를 사용하여 XML 문서를 구문 분석할 때 보다 정확한 정보를 얻으려면 실제 요구 사항에 따라 올바른 구문을 선택해야 합니다.

위 내용은 PHP 크롤러: XPath를 사용하여 XML 문서를 구문 분석하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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