>백엔드 개발 >PHP 문제 >PHP에서 xml 노드 값을 변경하는 방법

PHP에서 xml 노드 값을 변경하는 방법

藏色散人
藏色散人원래의
2021-09-02 09:26:512178검색

PHP에서 xml 노드 값을 변경하는 방법: 1. 데이터베이스에서 데이터를 읽습니다. 2. xml 파일을 작성합니다. 3. DOMDocument 개체를 만들고 xml 파일을 로드합니다. 지정된 노드.

PHP에서 xml 노드 값을 변경하는 방법

이 문서의 운영 환경: Windows 7 시스템, PHP 7.1 버전, Dell G3 컴퓨터

php로 xml 노드 값을 변경하는 방법은 무엇입니까?

php는 xml 노드의 값을 수정합니다

오늘 막 구현한 기능인데, 많은 정보를 검색해본 결과 원래 xpath를 사용하고 싶었지만 xpath에 대해 잘 몰랐습니다. 큰 원을 둘러본 후 DOMDocument를 사용하기로 결정했습니다.

여기에 표시해 두시면 나중에 정보를 찾기 위해 너무 열심히 노력하지 않아도 됩니다.

먼저 데이터베이스에서 데이터를 읽은 다음 xml 파일을 작성합니다. xml 파일 형식은 다음과 같습니다.

mainchart.xml

<?xml version="1.0" encoding="utf-8"?>
<records>
<record>
<pono>5008171</pono>
<status>3</status>
<opentime>2010.06.13 14:19</opentime>
<closetime>2010.06.16 14:19</closetime>
<potype>balance</potype>
<variety/>
<margin/>
<openprice/>
<closeprice/>
<zhisun/>
<zhiying/>
<lowest/>
<highest/>
<netvalue/>
<openamount/>
<openinterest/>
<amount/>
<point/>
<positiontime>3</positiontime>
<memo>TRMM-DP(123005)-D</memo>
</record>
<record>
<pono>5011083</pono>
<status>3</status>
<opentime>2010.06.15 16:15</opentime>
<closetime>2010.06.15 16:23</closetime>
<potype>buy</potype>
<variety>eurusd</variety>
<margin/>
<openprice>1.31822</openprice>
<closeprice>1.31655</closeprice>
<zhisun>0</zhisun>
<zhiying>0</zhiying>
<lowest/>
<highest/>
<netvalue/>
<openamount/>
<openinterest/>
<amount/>
<point/>
<positiontime>00:08:00</positiontime>
<memo>aaafff</memo>
</record>
<record>
<pono>5011913</pono>
<status>3</status>
<opentime>2010.06.15 16:51</opentime>
<closetime>2010.06.15 17:19</closetime>
<potype>sell</potype>
<variety>eurusd</variety>
<margin/>
<openprice>1.31819</openprice>
<closeprice>1.31809</closeprice>
<zhisun>0</zhisun>
<zhiying>0</zhiying>
<lowest/>
<highest/>
<netvalue/>
<openamount/>
<openinterest/>
<amount/>
<point/>
<positiontime>00:28:00</positiontime>
<memo>eee</memo>
</record>
</records>

PHP 파일에서 처리 중입니다.

$file ="mainchart.xml";
    //创建DOMDocument的对象
    $dom=new DOMDocument(&#39;1.0&#39;);
    //载入mainchart.xml文件
    $dom->load($file);
    //获得record节点的集合
    $records = $dom->getElementsByTagName(&#39;record&#39;);
    //遍历record节点的集合
    foreach($records as $record){
        //如果record节点的pono子节点的值满足条件,就修改该record节点下memo子节点的值
        if($record->getElementsByTagName(&#39;pono&#39;)->item(0)->nodeValue == $_GET[&#39;id&#39;]){
            $record->getElementsByTagName(&#39;memo&#39;)->item(0)->nodeValue = $_GET[&#39;content&#39;];
        }
    }
$dom->save(&#39;mainchart.xml&#39;);

$_GET['id'] 및 $_GET['content']는 ajax가 전달하는 매개변수입니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 xml 노드 값을 변경하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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