php 조작 xml 튜 토리 얼 사용 하기
최근 에 개인 적 인 작은 사 이 트 를 쓸 계획 입 니 다.일련의 원인 은 phop 으로 쓰 는 것 을 선 택 했 습 니 다.가장 큰 문 제 는 phop 이 유행 하지만 저 는 phop 을 접 해 본 적 이 없습니다.일주일 넘 게 기본 문법 을 본 후에 작은 연습 을 하고 몸 을 풀 었 습 니 다.하지만 그 동안 여러 가지 문 제 였 습 니 다.주로 phop 에 익숙 하지 않 아서 정리 해 보 겠 습 니 다.
데이터
<?xml version="1.0"?>
<books>
<book name="JavaScript: The Defiitive Guide" publisher="O'Reilly Media, Inc.">
<author>David Flanagan</author>
</book>
<book name="PHP anf MySQL Web Development" publisher="Perason Education">
<author>Luke Welling</author>
<author>Laura Thomson</author>
</book>
<book name="HTTP: The Defiitive Guide" publisher="O'Reilly Media, Inc.">
<author>David Courley</author>
<author>Brian Totty</author>
</book>
</books>
XML 몇 가지 기본 개념노드:노드 는 많은 프로그램 언어 에서 XML 을 처리 할 때의 노드 입 니 다.노드 는 비교적 광범 위 한 개념 입 니 다.XML 에서 요소,속성,이름 공간,주석,텍스트 내용,처리 명령,그리고 전체 문 서 는 노드 에 속 합 니 다.즉,XML 문서 의 모든 독립 된 일부분 은 노드 입 니 다.예,그리고 name="XXXX"도 마찬가지 입 니 다.라벨 은...심지어 작가 의 이름 인 David Flanagan 은 텍스트 노드 이다.
요소:많은 프로그램 언어 는 XML 에 대한 처리 가 있 습 니 다.노드 는 매우 광범 위 한 개념 입 니 다.API 를 통일 시 키 려 면 노드 에 대해 많은 방법 이 없 기 때 문 입 니 다.요소,즉 Element 는 노드 의 서브 집합 입 니 다.쉽게 말 하면 이런 라벨 이 어야 합 니 다.보통 요 소 를 대상 으로 하 는 조작 방법 이 많 습 니 다.
속성:이것 은 이해 하기 쉽 습 니 다.<>에 있 는 XX="OO"등 은 모두 속성 노드 입 니 다.
전의 문자:HTML 등 과 유사 하고 xml 도 언어 가 차지 하 는 기호 가 있 습 니 다.이 특수 문 자 를 사용 하려 면 전의 가 필요 합 니 다.
<
<
>
>
&
&
‘
'
“
"
DOMDocument 대상
저 는 DOMDocument 대상 을 사용 하여 xml 를 조작 하 는데 사용 하 는 것 이 simpleXml 보다 과학적 인 것 같 습 니 다.물론 첫날 phop 을 사용 하 는 것 은 개인 적 인 느낌 입 니 다.DOMDocument 에는 자주 사용 하 는 속성 과 방법 이 몇 가지 있 습 니 다.
속성
역할.
attributes
노드 속성 집합
parentNode
노드 부모 노드
documentElement
문서 루트 노드
nodeName
노드 이름
nodeType
노드 종류
nodeValue
노드 값
Text
노드 와 하위 노드 를 문자 로 변환 합 니 다.
방법.
역할.
appendChild
노드 에 하위 노드 추가
createAttribute
속성 노드 만 들 기
createElement
요소 생 성
getElementsByTagName
노드 이름 으로 노드 집합 가 져 오기
hasChildNodes
노드 에 하위 노드 가 있 는 지 판단 하기
insertBefore
노드
Load
문서 경로 로 xml 불 러 오기
loadXML
zml 문자열 불 러 오기
removeChild
하위 노드 삭제
removeAttribute
속성 노드 삭제
save
문서 저장
xml 불 러 오기
$path=$_SERVER["DOCUMENT_ROOT"].'/books.xml';
$books=new DOMDocument();
$books->load($path);
노드 와 속성 읽 기/옮 겨 다 니 기
$bookElements=$books->getElementsByTagName('book');
foreach($bookElements as $book){
foreach ($book->attributes as $attr) {
echo strtoupper($attr->nodeName).' ―― '.$attr->nodeValue.'<br/>';
}
echo "AUTHOR: ";
foreach ($book->getElementsByTagName('author') as $author) {
echo $author->nodeValue.' ';
}
echo '<br/><br/>';
}
물론 많은 속성 에 대해 서 는 하나만 읽 고 싶 습 니 다.item(index)방법 으로 색인 에 따라 읽 을 수 있 습 니 다.
echo $book->attributes->item(1)->nodeValue;
강력 한 xpath 를 통 해 조회 할 수 있 습 니 다.
$xpath = new domxpath($books);
$bookElements=$xpath->query("/books/book");
속성/노드 수정
foreach($bookElements as $book){
foreach ($book->attributes as $attr) {
#$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue));
$attr->nodeValue=strtoupper($attr->nodeValue);
}
echo "AUTHOR: ";
foreach ($book->getElementsByTagName('author') as $author) {
$author->nodeValue=strtoupper($author->nodeValue);
}
}
$books->save($path);
속성 변경 은 nodeValue 변경 에 직접 접근 할 수도 있 고 setAttribute 방법 을 사용 할 수도 있 습 니 다.변경 이 완료 되면 save 로 저장 하 는 것 을 잊 지 마 세 요.
$book->setAttribute($attr->nodeName,strtoupper($attr->nodeValue));
$attr->nodeValue=strtoupper($attr->nodeValue);
원소/속성 추가
$newBook=$books->createElement('book'); #
$newBook->setAttribute('name','PHP Objects, Patterns, and Practice');# ,
$publisher=$books->createAttribute('publisher');# ,
$publisher->nodeValue='Apress L.P';
$newBook->appendChild($publisher); #
$author=$books->createElement('author');#
$author->nodeValue='Matt Zandstra';
$newBook->appendChild($author);#
$books->documentElement->appendChild($newBook);#
$books->save($path);
속성/노드 삭제
$first=$bookElements->item(0);
$first->removeAttribute('publisher');
$second=$bookElements->item(1);
$second->parentNode->removeChild($second);
$books->save($path);
php 를 사용 하여 xml 튜 토리 얼 을 조작 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 phop 작업 xml 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.