티스토리 뷰
DOMDocument 만으로는 class를 선택자로 지정하여 불러올 수 없다.
그래서, DomXPath 를 활용하여, 오브젝트 내 선언된 class 를 선택자로 지정하여 불러온다.
libxml_use_internal_errors(true);
$doc = new \DOMDocument('1.0', 'UTF-8');
$doc->loadHTML($result);
$xpath = new \DomXPath($doc);
$nodeList = $xpath->query("//div[@class='sample']");
$node = $nodeList->item(0);
echo $node->nodeValue;
* HTML형태로 반환 시, 아래와 같이 선언하여 활용
echo $doc->saveHTML($node);
XPath문법을 통해서 Node를 선택할 수 있고, 아래 표현식들은 참고로 알아두자.
1. 기본선언
/ : 절대경로 - 현재 Node 부터 선택
// : 상대경로 - 현재 Node 부터 선택
2.모든속성 찾기
/*
//*
위와 같이 선언할 경우, 매칭되는 모든 Node를 선택
3.다중선택
| : 연산자를 이용하여 다중 선택
//title | //body
/title | //book
참고.PHP-DOMDocument Method [바로가기]
public createAttribute(string $localName): DOMAttr|false
public createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public createCDATASection(string $data): DOMCdataSection|false
public createComment(string $data): DOMComment|false
public createDocumentFragment(): DOMDocumentFragment|false
public createElement(string $localName, string $value = ""): DOMElement|false
public createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
public createEntityReference(string $name): DOMEntityReference|false
public createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false
public createTextNode(string $data): DOMText|false
public getElementById(string $elementId): ?DOMElement
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public importNode(DOMNode $node, bool $deep = false): DOMNode|false
public load(string $filename, int $options = 0): DOMDocument|bool
public loadHTML(string $source, int $options = 0): DOMDocument|bool
public loadHTMLFile(string $filename, int $options = 0): DOMDocument|bool
public loadXML(string $source, int $options = 0): DOMDocument|bool
public normalizeDocument(): void
public registerNodeClass(string $baseClass, ?string $extendedClass): bool
public relaxNGValidate(string $filename): bool
public relaxNGValidateSource(string $source): bool
public save(string $filename, int $options = 0): int|false
public saveHTML(?DOMNode $node = null): string|false
public saveHTMLFile(string $filename): int|false
public saveXML(?DOMNode $node = null, int $options = 0): string|false
public schemaValidate(string $filename, int $flags = 0): bool
public schemaValidateSource(string $source, int $flags = 0): bool
public validate(): bool
public xinclude(int $options = 0): int|false
'프로그래밍 > PHP' 카테고리의 다른 글
php mongo-php-driver 설치 및 모듈 설정 방법 (2) | 2021.09.23 |
---|---|
php simplexml_load_string - xml 데이터 배열값으로 변환 (0) | 2021.08.10 |
Laravel - Schedule 설정 방법 및 수동실행 방법 (0) | 2021.07.30 |
[PHP] ssh2 모듈 추가하기 (0) | 2021.04.09 |
[Laravel] Schedule 설정 및 Command 개별 실행 (0) | 2021.03.24 |
댓글