>  기사  >  백엔드 개발  >  PHP DOM 구문 분석

PHP DOM 구문 분석

WBOY
WBOY원래의
2016-08-08 09:31:041882검색

DOM 문서 객체 모델

  • DOMAttr — 요소 특성 클래스
  • DOMCdataSection — DOMCdataSection 클래스
  • DOMCharacterData — 문자 데이터 클래스
  • DOMComment — 문서 주석 클래스
  • DOMDocument — DOM 문서 클래스
  • DOMDocumentFragment — DOMDocumentFragment 클래스
  • DOMDocumentType — DOMDocumentType 클래스
  • DOMElement — DOMElement 클래스
  • DOMEntity — DOMEntity 클래스
  • DOMEntityReference — DOMEntityReference 클래스
  • DOMException — DOMException 클래스
  • DOMImplementation — DOMImplementation 클래스
  • DOMNamedNodeMap — DOMNamedNodeMap class
  • DOMNode — DOMNode 클래스
  • DOMNodeList — DOMNodeList 클래스
  • DOMNotation — DOMNotation 클래스
  • DOMProcessingInstruction — DOMProcessingInstruction 클래스
  • DOMText — DOM 텍스트 클래스
  • DOMXPath — DOMXPath 클래스
  • DOM 함수

    DOMElementdom_import_simplexml ( SimpleXMLElement$node ) —에서 SimpleXMLElement 객체에서 DOM 요소

가져오기
사전 정의된 상수
다음 상수는 이 확장에 의해 정의되며 이 확장이 PHP로 컴파일되거나 런타임 시 동적으로 로드되는 경우에만 사용할 수 있습니다.
    XML 상수 상수     값     설명
    XML_ELEMENT_NODE(정수)     1     노드는 DOMElement입니다.
    XML_ATTRIBUTE_NODE(정수)     2     노드는 DOMAttr입니다.
    XML_TEXT_NO DE (정수)     3     노드는 DOMText입니다
    XML_CDATA_SECTION_NODE(정수 )     4     노드는 DOMCharacterData
    XML_ENTITY_REF_NODE(정수)     5     노드는 DOMEntityReference
입니다.    XML_ENTITY_NODE(정수)     6     노드는 DOMEntity
입니다.    XML_PI_NODE(정수)     7     노드는 DOMProcessingInstruction
입니다.    XML_COMMENT_NODE(정수)     8 노드는 DOMComment
    XML_DOCUMENT_NODE(정수)     9     노드는 DOMDocument
    XML_DOCUMENT_TYPE_NODE(정수)     10     노드는 DOMDocumentType
    XML_DOCUMENT_FRAG_NODE(정수)     1 1     노드는 DOMDocumentFragment
    XML_NOTATION_NODE(정수)입니다.     12     노드는 DOMNotation
    XML_HTML_DOCUMENT_NODE(정수)     13     
    XML_DTD_NODE(정수)     14     
    XML_ELEMENT_DECL_NODE(정수)     15     
    XML_ATTRI BUTE_DECL_NODE(정수)     16     
    XML_ENTITY_DECL_NODE(정수)     17     
    XML_NAMESPACE_DECL_NODE(정수)     18
    XML_ATTRIBUTE_CDATA(정수)     1     
    XML_ATTRIBUTE_ID(정수)     2     
    XML_ATTRIBUTE_IDREF(정수)     3     
    XML_ATTRIBUTE_IDREFS(in 정수)     4     
    XML_ATTRIBUTE_ENTITY(정수)     5     
    XML_ATTRIBUTE_NMTOKEN(정수)     7     
    XML_ATTRIBUTE_NMTOKENS(정수)     8     
    XML_ATTRIBUTE_ENUMERATION(정수)     9     
    XML_ATTRIBUTE_NOTATION(정수)     10     
    DOMException 상수     값    설명
    DOM_PHP_ERR(정수)     0     오류 코드는 DOM 사양에 포함되지 않습니다. PHP 오류를 의미합니다.
    DOM_INDEX_SIZE_ERR(정수)     1     인덱스 또는 크기가 음수이거나 허용된 값보다 큰 경우.
    DOMSTRING_SIZE_ERR(정수)     2     지정된 텍스트 범위가 DOMString에 맞지 않는 경우
    DOM_HIERARCHY_REQUEST_ERR(정수)     3     노드가 속하지 않는 곳에 삽입된 경우
    DOM_WRONG_DOCUMENT_ERR(정수)     4     노드가 해당 노드를 생성한 문서와 다른 문서에서 사용되는 경우
    DOM_INVALID_CHARACTER_ERR(정수)    5     만약 이름 등 유효하지 않거나 잘못된 문자가 지정된 경우
    DOM_NO_DATA_ALLOWED_ERR (정수)     6     데이터를 지원하지 않는 노드에 데이터가 지정된 경우
    DOM_NO_MODIFICATION_ALLOWED_ERR (정수)     7     수정을 시도한 경우 수정이 허용되지 않는 객체.
    DOM_NOT_FOUND_ERR (정수)     8     노드가 존재하지 않는 컨텍스트에서 노드를 참조하려고 시도한 경우.
    DOM_NOT_SUPPORTED_ERR (정수)     9     구현이 요청한 것을 지원하지 않는 경우 개체 또는 작업 유형.
    DOM_INUSE_ATTRIBUTE_ERR(정수)     10     이미 다른 곳에서 사용 중인 속성을 추가하려고 시도하는 경우.
    DOM_INVALID_STATE_ERR(정수)     11     더 이상 사용할 수 없거나 더 이상 사용할 수 없는 개체를 사용하려고 시도한 경우.
    DOM_SYNTAX_ERR(정수)     12     유효하지 않거나 잘못된 문자열이 지정된 경우
    DOM_INVALID_MODIFICATION_ERR(정수)    13 기본 개체의 유형을 수정하려고 시도한 경우.
    DOM_NAMESPACE_ERR(정수)     14     네임스페이스와 관련하여 잘못된 방식으로 개체를 생성하거나 변경하려고 시도한 경우.
    DOM_INVALID_ACCESS_ERR(정수) )     15     매개변수 또는 작업이 기본 개체에서 지원되지 않는 경우.
    DOM_VALIDATION_ERR(정수)     16     insertBefore 또는 RemoveChild와 같은 메서드를 호출하면 "부분 유효성"과 관련하여 노드가 유효하지 않게 되는 경우 이 예외는 다음과 같습니다. 발생하고 작업이 수행되지 않습니다.
    
    
DOMNode {
    /* 属性 */
    public readonly string $nodeName ;              //현재 노드 유형에 대해 가장 정확한 이름을 반환합니다.
    public string $nodeValue ;                      //유형에 따른 이 노드의 값
    public readonly int $nodeType ;                 //노드의 유형을 가져옵니다. 사전 정의된 XML_xxx_NODE 상수 중 하나
    공개 읽기 전용 DOMNode $parentNode ;           //이 노드의 부모
    public readonly DOMNodeList $childNodes ;       //이 노드의 모든 하위 항목을 포함하는 DOMNodeList입니다. 자식이 없는 경우
                                                     //이것은   빈 DOMNodeList입니다.
    공개 읽기 전용 DOMNode $firstChild ;           //이 노드의 첫 번째 자식입니다. 그러한 노드가 없으면 NULL을 반환합니다.
    public readonly DOMNode $lastChild ;            //이 노드의 마지막 자식입니다. 그러한 노드가 없으면 NULL을 반환합니다.
    public readonly DOMNode $previousSibling ;      //이 노드 바로 앞의 노드입니다. 그러한 노드가 없으면 NULL을 반환합니다.
    public readonly DOMNode $nextSibling ;          //이 노드 바로 다음에 오는 노드입니다. 그러한 노드가 없으면 NULL을 반환합니다.
    public readonly DOMNamedNodeMap $attributes ;   //이 노드의 속성을 포함하는 DOMNamedNodeMap(DOMElement인 경우)
                                                   //그렇지 않으면 NULL입니다.
    공개 읽기 전용 DOMDocument $ownerDocument ;    //이 노드와 연결된 DOMDocument 개체.
    공개 읽기 전용 문자열 $namespaceURI ;          //이 노드의 네임스페이스 URI, 지정되지 않은 경우 NULL.
    public string $prefix ;                         //이 노드의 네임스페이스 접두사, 지정되지 않은 경우 NULL.
    public readonly string $localName ;             //이 노드의 정규화된 이름의 로컬 부분을 반환합니다.
    공개 읽기 전용 문자열 $baseURI ;               //이 노드의 절대 기본 URI 또는 ​​구현이 불가능한 경우 NULL
                                                             //절대 URI를 얻습니다.
    공개 읽기 전용 문자열 $textContent ;           //이 속성은 이 노드와 그 하위 항목의 텍스트 콘텐츠를 반환합니다.
    
    /* 방법 */
    public DOMNodeappendChild ( DOMNode $newnode )      하위 항목 끝에 새 하위 항목을 추가합니다
    public string C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )   노드를 문자열로 정규화
    public int C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )    노드를 파일로 정규화
    public DOMNode cloneNode ([ bool $deep=False ] )       노드 복제
    public int getLineNo ( void )                가져오기 노드의 행 번호
    public string getNodePath ( void )          노드의 XPath 가져오기
    public bool hasAttributes ( void )         노드에 속성이 있는지 확인
    public bool hasChildNodes ( void )           노드에 하위가 있는지 확인
    public DOMNode insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )       참조 노드 앞에 새 하위 항목을 추가합니다
    public bool isDefaultNamespace ( string $namespaceURI )              지정된 네임스페이스URI가 기본 네임스페이스인지 아닌지 확인
    public bool isSameNode ( DOMNode $node )                       두 노드가 동일한 노드인지 나타냅니다.
    public bool isSupported ( string $feature , string $version )        특정 버전에서 기능이 지원되는지 확인
    public string lookupNamespaceURI ( string $prefix )                접두사를 기반으로 하는 노드의 네임스페이스 URI
    공개 문자열 lookupPrefix( string $namespaceURI )                 네임스페이스 URI를 기반으로 노드의 네임스페이스 접두사를 가져옵니다
    public void Normalize( void )                                노드
    공개 DOMNode 제거Child ( DOMNode $oldnode )                     하위 항목 목록에서 하위 항목 제거
    public DOMNode replacementChild ( DOMNode $newnode , DOMNode $oldnode )     하위 항목 교체
}
DOMNamedNodeMap은 Traversable {
    /* 属性 */
    읽기 전용 public int $length ;       맵의 노드 수입니다. 유효한 하위 노드 인덱스의 범위는 0부터 길이 - 1까지입니다.
    /* 방법 */
    DOMNode getNamedItem ( string $name )       이름으로 지정된 노드를 검색합니다
    DOMNode getNamedItemNS ( string $namespaceURI , string $localName )     로컬 이름 및 네임스페이스 URI
    DOMNode 항목( int $index )으로 지정된 노드를 검색합니다.
}
DOMNotation은 DOMNode를 확장합니다. >    읽기 전용 공개 문자열 $publicId ;
    읽기 전용 공개 문자열 $systemId ;
}
DOMProcessingInstruction은 DOMNode를 확장합니다. , string $value ] )
}
DOMAttr은 DOMElement 객체 속성을 나타냅니다.
DOMAttr은 DOMNode {
/* Attribute*/
public readonly string $name; > public readonly DOMElement $ownerElement ; //이 요소에 포함된 속성
public readonly bool $schemaTypeInfo ; //현재 및 향후 구현은 NULL입니다.
public readonly bool $specified ; 🎜> /* 메소드*/
public __construct ( string $name [, string $value ] )
public bool isId ( void )
DOMNodeList는 Traversable을 구현합니다. {
/* Properties*/
readonly public int $length ; 목록의 노드 수입니다. 유효한 하위 노드 인덱스의 범위는 0부터 길이 - 1까지입니다.
/* 방법 */
DOMNode DOMNodelist::item ( int $index ) index
}
DOMXPath {
/* Properties*/
public DOMDocument $document ;
/ * Method*/
public __construct( DOMDocument $doc ) public 혼합 평가( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] ) 주어진 XPath 표현식을 평가하고 가능한 경우 형식화된 결과를 반환합니다.
public DOMNodeList 쿼리( string $expression [, DOMNode $ contextnode [, bool $registerNodeNS = true ]] ) 주어진 XPath 표현식을 평가합니다
public bool RegisterNamespace ( string $prefix , string $namespaceURI ) DOMXPath 객체에 네임스페이스를 등록합니다
public void RegisterPhpFunctions ([ Mixed $restrict ] ) PHP 함수를 XPath 함수로 등록
}
 
DOMElement는 DOMNode를 확장합니다. {
    /* 属性 */
    읽기 전용 public bool $schemaTypeInfo ;      아직 구현되지 않았으며 항상 NULL
을 반환합니다.    읽기 전용 공개 문자열 $tagName ;           요소 이름
    /* 방법 */    
    public __construct ( string $name [, string $value [, string $namespaceURI ]] )  새 DOMElement 객체를 생성합니다.   
    public string getAttribute ( string $name )             
    public DOMAttr getAttributeNode ( string $name )        
    public DOMAttr getAttributeNodeNS ( string $namespaceURI , string $localName )
    public string getAttributeNS ( string $namespaceURI , string $localName )
    public DOMNodeList getElementsByTagName ( string $name )
    public DOMNodeList getElementsByTagNameNS( 문자열 $namespaceURI , 문자열 $localName )
    public bool hasAttribute( 문자열 $name )
    public bool hasAttributeNS( 문자열 $namespaceURI , 문자열 $localName )
    public bool RemoveAttribute( 문자열 $name )
    public bool RemoveAttributeNode ( DOMAttr $oldnode )
    public bool RemoveAttributeNS ( string $namespaceURI , string $localName )
    public DOMAttr setAttribute ( string $name , string $value )
    public DOMAttr setAttributeNode ( DOMAttr $attr )
    public DOMAttr setAttributeNodeNS ( DOMAttr $attr )
    public void setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )
    public void setIdAttribute ( string $name , bool $isId )
    public void setIdAttributeNode ( DOMAttr $attr , bool $isId )
    public void setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )
}
DOMCharacterData        문자 데이터가 있는 노드를 나타냅니다. 이 클래스에 직접적으로 대응하는 노드는 없지만 다른 노드는 이 클래스에서 상속됩니다.
DOMCharacterData는 DOMNode {      
        
    /* 属性 */
    public string $data ;       노드의 콘텐츠.
    읽기 전용 public int $length ;       내용의 길이.
    /* 방법 */
    void appendData ( string $data )        노드의 문자 데이터 끝에 문자열을 추가합니다
    void deleteData ( int $offset , int $count )        노드에서 문자 범위 제거
    void insertData ( int $offset , string $data )      지정된 16비트 단위 오프셋에 문자열 삽입
    void replacementData ( int $offset , int $count , string $ data )        DOMCharacterData 노드 내의 하위 문자열 교체
    string substringData ( int $offset , int $count )       노드에서 데이터 범위를 추출합니다
}
DOMText         DOMText 클래스는 DOMCharacterData에서 상속되며 텍스트 콘텐츠를 나타냅니다. DOMElement 또는 DOMAttr.
DOMText 확장 DOMCharacterData {
    /* 属性 */
    읽기 전용 공개 문자열 $wholeText ;     논리적으로 인접한(요소, 주석 또는 처리 명령으로 분리되지 않은) 텍스트 노드의 모든 텍스트를 보유합니다.
    
    /* 방법 */
    public __construct ([ string $value ] )     새 DOMText 객체를 생성합니다.
    public bool isWhitespaceInElementContent ( void )        이 텍스트 노드에 공백이 포함되어 있는지 여부를 나타냅니다.
    public DOMText SplitText ( int $offset )        이 노드를 지정된 오프셋에서 두 개의 노드로 나눕니다.
}
DOMCdataSection     DOMCdataSection은 DOMText에서 상속됩니다. CData 구문의 텍스트 표현을 위해.
DOMCdataSection은 DOMText를 확장합니다. {
    /* 방법 */
    public __construct ( string $value )
}
DOMComment  설명 노드, 로 구분된 문자를 나타냅니다.
DOMComment 확장 DOMCharacterData {
    /* 방법 */
    public __construct ([ string $value ] )
}
DOMDocumentType     각 DOMDocument에는 값이 NULL 또는 DOMDocumentType 객체인 doctype 속성이 있습니다.
DOMDocumentType은 DOMNode를 확장합니다 {
    /* 属性 */
    읽기 전용 공개 문자열 $publicId ;      외부 하위 집합의 공개 식별자.
    읽기 전용 공개 문자열 $systemId ;      외부 하위 집합의 시스템 식별자입니다. 절대 URI일 수도 있고 아닐 수도 있습니다.
    읽기 전용 공개 문자열 $name ;          DTD의 이름 즉, DOCTYPE 키워드 바로 뒤에 오는 이름입니다.
    읽기 전용 public DOMNamedNodeMap $entities ;     DTD에 선언된 외부 및 내부 일반 엔터티를 포함하는 DOMNamedNodeMap.
    읽기 전용 public DOMNamedNodeMap $notations ;        DTD에 선언된 표기법을 포함하는 DOMNamedNodeMap.
    읽기 전용 공개 문자열 $internalSubset ;        내부 하위 집합은 문자열이거나, 없는 경우 null입니다. 여기에는 구분 대괄호가 포함되어 있지 않습니다.
}
DOMDocumentFragment 확장 DOMNode {
    public bool appendXML ( string $data )      원시 XML 데이터 추가
}
DOMEntity  이 인터페이스는 알려진 엔터티를 나타냅니다. XML 문서에서 구문 분석되거나 구문 분석되지 않습니다.
DOMEntity 확장 DOMNode {
    /* 属性 */
    읽기 전용 공개 문자열 $publicId ;      지정된 경우 엔터티와 연결된 공개 식별자이고, 그렇지 않으면 NULL입니다.
    읽기 전용 공개 문자열 $systemId ;      지정된 경우 엔터티와 연결된 시스템 식별자이고, 그렇지 않으면 NULL입니다. 절대 URI일 수도 있고 아닐 수도 있습니다.
    읽기 전용 공개 문자열 $notationName ;      구문 분석되지 않은 엔터티의 경우 엔터티에 대한 표기법의 이름입니다. 구문 분석된 엔터티의 경우 이는 NULL입니다.
    공개 문자열 $actualEncoding ;         파싱된 외부 엔터티인 경우 파싱 시 이 엔터티에 사용되는 인코딩을 지정하는 속성입니다. 내부 하위 집합의 엔터티이거나 알 수 없는 엔터티인 경우 NULL입니다.
    읽기 전용 공개 문자열 $encoding ;      외부 구문 분석 엔터티인 경우 텍스트 선언의 일부로 이 엔터티의 인코딩을 지정하는 속성입니다. 그렇지 않으면 NULL입니다.
    읽기 전용 공개 문자열 $version ;       외부 구문 분석 엔터티인 경우 텍스트 선언의 일부로 이 엔터티의 버전 번호를 지정하는 속성입니다. 그렇지 않으면 NULL입니다.
}
DOMEntityReference는 DOMNode를 확장합니다. {
    public __construct ( string $name )
}
Exception {
/* 속성*/
protected string $message; 예외 메시지 내용
protected int $code; 예외 코드
protected string $file; > protected int $line ; 예외가 발생한 파일의 줄 번호
/* 방법*/
public __construct ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] )
final public string getMessage(void) 예외 메시지 내용 가져오기
final public Exception getPrevious(void) 예외 체인에서 이전 예외 반환
final public int getCode(void) 가져오기 예외 코드
final public string getFile ( void ) 예외가 발생한 프로그램 파일의 이름을 가져옵니다
final public int getLine ( void ) 예외가 발생한 파일의 코드 줄 번호를 가져옵니다
final public array getTrace ( void ) 예외 추적 정보 가져오기
final public string getTraceAsString (void) 문자열 유형의 예외 추적 정보 가져오기
public string __toString (void) 예외 개체를 문자열로 변환
final private void __clone (void) 예외 clone
}
DOMException DOM 작업은 특정 상황, 즉 논리적 이유로 작업 수행이 불가능한 경우 예외를 발생시킵니다.
DOMException은 예외 {
/* 속성*/을 확장합니다.
readonly public int $code ; 생성된 오류 유형을 나타내는 정수
}
DOMImplementation DOMImplementation 인터페이스는 문서 객체 모델의 특정 인스턴스와 독립적인 작업을 수행하기 위한 다양한 메서드를 제공합니다.
DOMImplementation {
/ * 메소드*/
__construct ( void )
public DOMDocument createDocument ([ string $namespaceURI = NULL [, string $qualifiedName = NULL [, DOMDocumentType $doctype = NULL ]]] ) 문서 요소를 사용하여 지정된 유형의 DOMDocument 객체를 생성합니다
public DOMDocumentType createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] ) 빈 DOMDocumentType 객체를 생성합니다
public bool hasFeature ( string $feature , string $version ) DOM 구현이 특정 기능을 구현하는지 테스트합니다
}
DOMDocument DOMNode 확장 {
    /* 属性 */
    읽기 전용 공개 문자열 $actualEncoding ;        더 이상 사용되지 않습니다. 문서의 실제 인코딩은 읽기 전용 인코딩과 동일합니다.
    읽기 전용 public DOMConfiguration $config ;      더 이상 사용되지 않습니다. DOMDocument::normalizeDocument()가 호출될 때 사용되는 구성입니다.
    읽기 전용 public DOMDocumentType $doctype ;      이 문서와 관련된 문서 유형 선언입니다.
    읽기 전용 public DOMElement $documentElement ;       문서의 문서 요소인 하위 노드에 직접 접근할 수 있게 해주는 편의 속성입니다.
    public string $documentURI ;                문서의 위치 또는 정의되지 않은 경우 NULL.
    공개 문자열 $encoding ;       XML 선언에 지정된 대로 문서를 인코딩합니다. 이 속성은 최종 DOM 레벨 3 사양에는 없지만 이 구현에서 XML 문서 인코딩을 조작하는 유일한 방법입니다.
    public bool $formatOutput ;     들여쓰기와 추가 공간을 사용하여 출력 형식을 멋지게 지정합니다.
    읽기 전용 public DOMImplementation $implementation ;         이 문서를 처리하는 DOMImplementation 개체입니다.
    public bool $preserveWhiteSpace = true ;        중복된 공백을 제거하지 마십시오. 기본값은 TRUE입니다.
    public bool $recover ;                  소유권. 복구 모드를 활성화합니다. 즉, 형식이 올바르지 않은 문서를 구문 분석하려고 합니다. 이 속성은 DOM 사양의 일부가 아니며 libxml에만 적용됩니다.
    public bool $resolveExternals ;     doctype 선언에서 외부 엔터티를 로드하려면 TRUE로 설정합니다. 이는 XML 문서에 문자 엔터티를 포함하는 데 유용합니다.
    public bool $standalone ;           더 이상 사용되지 않습니다. XML 선언에 지정된 대로 문서가 독립형인지 여부는 xmlStandalone에 해당합니다.
    public bool $strictErrorChecking = true ;       오류 발생 시 DOMException이 발생합니다. 기본값은 TRUE입니다.
    public bool $substituteEntities ;           소유권. 엔터티를 대체할지 여부입니다. 이 속성은 DOM 사양의 일부가 아니며 libxml에만 적용됩니다.
    public bool $validateOnParse = false ;      DTD를 로드하고 유효성을 검사합니다. 기본값은 FALSE입니다.
    공개 문자열 $version ;                더 이상 사용되지 않습니다. XML 버전은 xmlVersion에 해당합니다.
    읽기 전용 공개 문자열 $xmlEncoding ;       XML 선언의 일부로 이 문서의 인코딩을 지정하는 속성입니다. 문서가 메모리에 생성된 경우와 같이 지정되지 않거나 알 수 없는 경우에는 NULL입니다.
    public bool $xmlStandalone ;        이 문서가 독립형인지 여부를 XML 선언의 일부로 지정하는 속성입니다. 지정되지 않은 경우 FALSE입니다.
    public string $xmlVersion ;     XML 선언의 일부로 이 문서의 버전 번호를 지정하는 속성입니다. 선언이 없고 이 문서가 "XML" 기능을 지원하는 경우 값은 "1.0"입니다.
    
    /* 방법 */
    public __construct ([ string $version [, string $encoding ] ] )
    public DOMAttr createAttribute ( string $name )
    public DOMAttr createAttributeNS ( string $namespaceURI , string $qualifiedName )       연관된 네임스페이스가 있는 새 속성 노드 생성
    public DOMCDATASection createCDATASection ( string $data )
공개 DOMComment createComment( 문자열 $data )
    공개 DOMDocumentFragment createDocumentFragment( void )
    공개 DOMElement createElement( 문자열 $name [, 문자열 $value ] )
    공개 DOMElement createElementNS( 문자열 $namespaceURI , 문자열 $qualifiedName [, 문자열 $값 ] )
    public DOMEntityReference createEntityReference( string $name )
    public DOMProcessingInstruction createProcessingInstruction( string $target [, string $data ] )
    public DOMText createTextNode( string $content )
    public DOMElement getElementById( string $elementId )      다음을 검색합니다. 특정 ID를 가진 요소
    public DOMNodeList getElementsByTagName ( string $name )        주어진 로컬 태그 이름을 가진 모든 요소를 ​​검색합니다
    public DOMNodeList getElementsByTagNameNS ( string $namespaceURI , string $localName )      지정된 태그 이름을 가진 모든 요소를 ​​검색합니다. 네임스페이스
    public DOMNode importNode ( DOMNode $importedNode [, bool $deep ] )     노드를 현재 문서로 가져오기
    public 혼합 로드( string $filename [, int $options = 0 ] )             파일에서 XML 로드
public bool loadHTML ( string $source [, int $options = 0 ] )       문자열에서 HTML 로드
    public bool loadHTMLFile ( string $filename [, int $options = 0 ] )     파일에서 HTML 로드
    public 혼합 loadXML( string $source [, int $options = 0 ] )            문자열에서 XML 로드
    public voidnormalizeDocument( void )                      문서를 표준화합니다
    public bool RegisterNodeClass ( string $baseclass , string $extendedclass )     사용된 확장 클래스 등록 기본 노드 유형을 생성하려면
    public bool RelaxNGValidate( string $filename )                   문서에 대해 RelaxNG 검증을 수행합니다.
    public bool RelaxNGValidateSource( string $source )               문서에 대해 RelaxNG 검증을 수행합니다
    public int save( string $filename [ , int $options ] )       내부 XML 트리를 다시 파일로 덤프
    public string saveHTML ([ DOMNode $node = NULL ] )      HTML 형식을 사용하여 내부 문서를 문자열로 덤프
    public int saveHTMLFile ( string $filename )            HTML 형식을 사용하여 내부 문서를 파일로 덤프
    public string saveXML ([ DOMNode $node [, int $options ]] )     내부 XML 트리를 다시 문자열로 덤프
    public boolschemaValidate( string $filename [ , int $flags ] )     스키마 기반 문서 유효성 검사
    public boolschemaValidateSource ( string $source [, int $flags ] )     스키마 기반 문서 유효성 검사
    public bool verify ( void )                  스키마 기반 문서 유효성 검사 DTD
    public int xinclude ([ int $options ] )         DOMDocument 객체의 XIncludes를 대체합니다

}

<?php
$url = &#39;http://movie.douban.com/category/&#39; ;
function getPage($url)
{ 
  $curl = curl_init(); 
  $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; 
  $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; 
  $header[] = "Cache-Control: max-age=0"; 
  $header[] = "Connection: keep-alive"; 
  $header[] = "Keep-Alive: 300"; 
  $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; 
  $header[] = "Accept-Language: en-us,en;q=0.5"; 
  $header[] = "Pragma: "; // browsers keep this blank. 

  curl_setopt($curl, CURLOPT_URL, $url); 
  curl_setopt($curl, CURLOPT_USERAGENT, &#39;Googlebot/2.1 (+http://www.google.com/bot.html)&#39;); 
  curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
  curl_setopt($curl, CURLOPT_REFERER, &#39;http://www.baidu.com&#39;); 
  curl_setopt($curl, CURLOPT_ENCODING, &#39;gzip,deflate&#39;); 
  curl_setopt($curl, CURLOPT_AUTOREFERER, true); 
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt($curl, CURLOPT_TIMEOUT, 10); 

  $html = curl_exec($curl);  
  curl_close($curl); 
  return $html;
} 

$text = getPage($url); 
$xml = new DOMDocument();
$xml->loadHTMLFile("test.html");
$xml->encoding='UTF-8';
$xpath=new DOMXpath($xml);

$elements = $xpath->query("/html/body//div[@id='type']/ul");
var_dump($elements);
foreach ( $elements as $e){
    foreach ($e->childNodes as $es){
        var_dump($es->nodeValue);
    }
}
?>

以上就介绍了php DOM 解析, 包括了方face的内容, 希望对PHP教程有兴趣的朋友有所帮助.

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