簡體   English   中英

如何使用php DOMdocument將新元素附加到XML文件?

[英]How to append new elemnt to XML-file using php DOMdocument?

我有這個test.xml:

<?xml version="1.0"?>
<Images>
  <Image>
    <Id>765</Id>
    <Title>Img title 1</Title>
    <Name>some_path_to_img.jpg</Name>
  </Image>
</Images>

我嘗試將新的'<Image>''<Images>' ,但是沒有成功。 這是我的代碼:

function update_xml_file() {
  $xml = new DOMDocument();
  $xml->load(file_get_contents('test.xml'));
  $xml->formatOutput = true;

  $base_node = $xml->getElementsByTagName('Images')->item(0);
  $newimage = $xml->createElement("Image");

  $img_id = $xml->createElement("Id");
  $img_title = $xml->createElement("Title");
  $img_name = $xml->createElement("Name");

  $img_id->nodeValue = '766';
  $img_title->nodeValue = 'Image title 2';
  $img_name->nodeValue = 'some_path_to_img2.jpg';

  $newimage->appendChild($img_id);
  $newimage->appendChild($img_title);
  $newimage->appendChild($img_name);

  $base_node->appendChild($newimage);

  umask();
  $xml->save("test.xml");
}

到處尋找相關討論並沒有幫助我。 謝謝你的時間。

您在加載xml數據的代碼中有一些錯字。

更改為:

$xml->loadXML(file_get_contents('test.xml'));

或更好)

$xml->load('test.xml');

請參閱DOMDocument::loadXML()DOMDocument::load()的文檔

您還可以使用github上的此程序包使其變得簡單http://github.com/toureiliass/xdt

您可以用幾行代碼來完成

$con = new XDT();
$con->connect('test.xml');
$con->getDocumentRootElement()->append('<image><id>765</id><title>some title</title><name>some_path_to_image.jpg</name></image>');
$con->save();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM