> 백엔드 개발 > PHP 튜토리얼 > PHP의 XML DOM(11)

PHP의 XML DOM(11)

WBOY
풀어 주다: 2016-08-08 09:27:45
원래의
967명이 탐색했습니다.

7. 노드 생성

DOM 작업에서 추가, 삭제, 수정 작업은 상위 노드를 찾아야 합니다

1. DOMElement DOMDocument::createElement ( 문자열 $name [, 문자열 $value ] )

노드 생성 및 노드 객체 반환

string $name : 노드 이름(요소 이름)

[, string $value]: 노드의 값

2. DOMNode DOMNode::appendChild ( DOMNode $newnode )

하위 노드 추가

DOMNode $newnode: 하위 노드

3. int DOMDocument::save ( 문자열 $filename )

DOM의 데이터를 지정된 파일에 저장

4. documentElement 속성은 dom 모델의 루트 노드를 나타냅니다

<?<span>php
    header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
    $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
    $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 创建节点仅仅是表示在内存中创建出这个节点对象,但这个对象和我们之前的
</span><span>//</span><span> dom模型没有任何联系</span>
    $person = $dom->createElement ( <span>'</span><span>person</span><span>'</span><span> );
    $name </span>= $dom->createElement ( <span>'</span><span>name</span><span>'</span>, <span>'</span><span>huangliu</span><span>'</span><span> );
    $age </span>= $dom->createElement ( <span>'</span><span>age</span><span>'</span>, <span>'</span><span>18</span><span>'</span><span> );
</span><span>//</span><span> 将name和age做为子节点追加至person节点</span>
    $person-><span>appendChild ( $name );
    $person</span>-><span>appendChild ( $age );
</span><span>//</span><span> $dom->getElementsByTagName('persons')->item(0)->appendChild($newnode)
</span><span>//</span><span> 将person做了子节点追加至根节点</span>
    $dom->documentElement-><span>appendChild ( $person );
</span><span>//</span><span> 将dom中的所有数据重新保存到demo01.xml文件中</span>
    $dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );
로그인 후 복사

결과:

<person>
        <name>huangliu</name>
        <age><span>18</span></age>
    </person>
로그인 후 복사

8. 노드 삭제

DOMNode DOMNode::removeChild ( DOMNode $oldnode )

DOMNode $oldnode: 삭제할 노드 객체

예: 다음 파란색 부분 삭제

<?<span>php
    header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
    $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
    $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 首先找到要删除的节点对象</span>
    $person = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>1</span><span> );
</span><span>//</span><span> 将节点删除</span>
    $dom->documentElement-><span>removeChild ( $person );
</span><span>//</span><span> 重新保存文件</span>
    $dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );
로그인 후 복사

9. 노드 수정

DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )

DOMNode $newnode: 새 노드

DOMNode $oldnode: 원본 노드

<?<span>php
    header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
    $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
    $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 找到要被替换掉的节点</span>
    $oldNode = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>2</span><span> );
</span><span>//</span><span> 创建出新的节点</span>
    $person = $dom->createElement ( <span>'</span><span>person</span><span>'</span><span> );
    $name </span>= $dom->createElement ( <span>'</span><span>name</span><span>'</span>, <span>'</span><span>songjiang</span><span>'</span><span> );
    $age </span>= $dom->createElement ( <span>'</span><span>age</span><span>'</span>, <span>100</span><span> );
    $person</span>-><span>appendChild ( $name );
    $person</span>-><span>appendChild ( $age );
</span><span>//</span><span> 用新节点替换原节点</span>
    $dom->documentElement-><span>replaceChild ( $person, $oldNode );
</span><span>//</span><span> 保存文件</span>
    $dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );
로그인 후 복사

10. 저장

? 문자열 DOMDocument::saveXML

DOM의 데이터를 문자열 변수에 저장

? int DOMDocument::save( 문자열 $filename )

DOM의 데이터를 지정된 파일에 저장

11. 속성 추가, 삭제, 수정에 관하여

1. DOMAttr DOMElement::setAttribute( 문자열 $name , 문자열 $value )

속성 추가

문자열 $name: 속성 이름

문자열 $value: 속성 값

person에 id='s102' 속성을 추가하세요

<?<span>php
    header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
    $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
    $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 为第二个人添加id属性
</span><span>//</span><span> 找到第二个人</span>
    $person = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>1</span><span> );
</span><span>//</span><span> 添加id属性</span>
    $person->setAttribute ( <span>'</span><span>id</span><span>'</span>, <span>'</span><span>s102</span><span>'</span><span> );
</span><span>//</span><span> 保存文件</span>
    $dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );
로그인 후 복사

2. DOMAttr DOMElement::setAttribute( 문자열 $name , 문자열 $value )

속성 수정

문자열 $name: 속성 이름

문자열 $value: 속성 값

노드에 이 속성이 없으면 속성을 추가한다는 의미입니다(위와 차이점에 유의하세요)

노드에 이미 이 속성이 있는 경우 속성을 수정한다는 의미입니다.

3. bool DOMElement::removeAttribute ( 문자열 $name )

속성 삭제(노드 삭제 아님)

$name: 삭제할 속성

<?<span>php
    header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
    $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
    $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 删除第2个人的id属性
</span><span>//</span><span> 找到第二个人</span>
    $person = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>1</span><span> );
</span><span>//</span><span> 删除id属性</span>
    $person->removeAttribute(<span>'</span><span>id</span><span>'</span><span>);
</span><span>//</span><span> 保存文件</span>
    $dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );
로그인 후 복사

4. 속성 가져오기

문자열 DOMElement::getAttribute ( 문자열 $name )

문자열 $name: 속성 이름

<?<span>php
    header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
    $dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
    $dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 查询第1个人的id属性
</span><span>//</span><span> 找到第1个人</span>
    $person = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>0</span><span> );
</span><span>//</span><span> 查询id属性</span>
    echo $person->getAttribute(<span>'</span><span>id</span><span>'</span>);
로그인 후 복사

12개의 SimpleXML

PHP DOM: 추가, 삭제 및 수정

SimpleXML: 쿼리

1. XML 읽기

1. simpleXMLElement simplexml_load_file(문자열 $filename)

xml 파일에서 데이터 읽기

문자열 $filename:xml 파일 이름

2. SimpleXMLElement::__construct(문자열 데이터)

문자열에서 데이터 읽기

문자열 데이터: xml 형식의 문자열

데이터가 파일로 저장되어 있는 경우에는 simplexml_load_file을 이용하여 읽어주세요

데이터가 문자열로 저장된 경우 SimpleXMLElement 클래스의 생성자를 사용하여 읽습니다.

위 내용은 PHP의 XML DOM(11)을 관련 내용을 포함하여 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿