>백엔드 개발 >PHP 튜토리얼 >중학교 교육 복습 자료 php xml 입문 학습 자료

중학교 교육 복습 자료 php xml 입문 학습 자료

WBOY
WBOY원래의
2016-07-29 08:44:08970검색

원인:
오늘 프로젝트를 진행하는 동안 문제가 발생했습니다. 이 사이트가 막 완성된 것이 아니라 누군가 유지 관리하고 있음을 보여주기 위해 홈페이지의 사진을 동적으로 업데이트해야 합니다. 자, 이제 요구사항이 생겼으니 어떻게 구현할까요? !
내 생각은 다음과 같습니다.
사진 저장 위치: 폴더에 넣습니다. 사진 유형: 사진이면 업로드하고 표시할 수 있습니다. 사진 이름: 원본; 이름이 약간 불규칙하므로 이름을 바꿔야 합니다.
표시 위치: 사진에 해당하는 ID를 지정해야 합니다. 이 ID는 고정되어 있으며 사진과 일대일로 일치해야 합니다. 그래서 레코드 간 일대일 대응이 가능한 관계 파일이 있는데 csv 파일, 데이터베이스 레코드를 선택하고 최종적으로는 xml을 선택하게 되었습니다. 문제. 오늘은 도전이었습니다. 오후를 보낸 후 마침내 뭔가를 얻었습니다.
학습 단계:
명확한 목표: 1. xml의 구조를 이해합니다. 2. xml 파일을 동적으로 생성하는 방법 3. xml 파일을 읽고 수정하는 방법
1. xml의 구조는 트리입니다. 구조:
이해하기 쉽습니다. 간단히 작성하세요:

코드 복사 코드는 다음과 같습니다.



1
사진 1

2 id>
사진 2

사진 3


2. PHP를 사용하여 다음을 만듭니다.
1. DOM 개체 정의: $dom = new DomDocument('1.0')
2. 하위 요소 추가: $dom->appendChild($dom ->createElement("pictures"))
메모리의 프로토타입은 다음과 같습니다.
내부에 하위 요소를 계속 추가합니다. *->appendChild($dom-> createElement ("picture"));
계속 추가하세요: **->appendChild($dom->createElement("id"))
더 이상 하위 요소가 없습니다. 노드를 추가하세요: ***- > ;appendChild($dom->createNode("1"))
위의 *는 이전 코드 줄을 나타내며 이 방법으로 한 줄로 작성할 수 있습니다.
$dom->appendChild($ dom-> ;createElement("pictures"))->appendChild($dom->createElement("picture"))
    ->appendChild($dom->createElement("id"))-> ;appendChild( $dom->createNode("1"));
이제 메모리는 다음과 같습니다.1< ;/pictures> ;
물론 요구사항은 아직 멀었고 혼란스럽기도 합니다.
따라서 일반적으로 다음과 같이 작성됩니다. $pictures = $dom->appendChild($dom->createElement("pictures"))
$picture = $pictures->appendChild($dom- >createElement ("그림"))
       $id = $picture->appendChild($dom->createElement("id"))
        $id->appendChild($dom-> ;createNode( "1"));
아래에서 이름 노드를 만들 수도 있습니다.
$name = $picture->appendChild($dom->createElement("name")); ;appendChild($dom->createNode("pic 1"));
다음으로 그림 노드를 만들어야 합니다.
$picture = $pictures->appendChild($dom->createElement(" picture"));
사실 이런 번거로운 일들은 for 루프를 작성함으로써 실현될 수 있습니다.
xml 파일 생성:
$dom->formatOutput = true; //형식화된 출력 설정
$dom->save("erhsh.xml") //xml 파일 저장
3 .xml 파일을 읽어보세요.
1. DOM 객체 정의: $dom->new DomDocument()
2. xml 파일 로드: $dom->load("erhsh.xml") 3. 노드 이름으로 노드 컬렉션 가져오기: $dom->getElementByTagName("pictures")
이 방법은 약간 번거롭습니다. 참조 파일:
http://www.jb51.net/article /25853.htm
그런데 제가 좋아하는 방법이 있습니다: simplexml_load_file("erhsh.xml");
이 방법을 사용하면 xml 파일의 내용을 객체 형태로 변환할 수 있습니다. "->" 매듭 및 "[]" xml의 내용으로 이동
그러나 개발 중에 여전히 몇 가지 문제가 발생했습니다.
실행 시: print_r($xml->pictures); SimpleXMLElement 객체, ([picture] => array([0]=>array(...)[1]=>array(...))
다시 실행: print_r($xml ->그림->그림) 출력은 n개의 개별 개체입니다.
실행: print_r($xml->pictures->picture[0]->id); 출력은 여전히 ​​객체입니다. 이것은 매우 이해하기 어렵습니다. 문자열이어야 합니다. 마지막으로 인터넷에서는 "반복 객체"라고 하는데,
echo 출력을 사용해야 한다면 print_r(), var_dump() 출력이 정확하지 않습니다. 참고주소 : http://www.jb51.net/article/25852.htm
 물론 이 방법을 통해서 xml 값을 수정할 수도 있습니다.
글이 형편없어서 기억에 남네요.
위 내용은 중학교 교육 복습 자료 내용을 포함하여 php xml 입문 학습 자료를 소개하고 있는데, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

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