在PHP中解析和编辑XML文件

Dja*_*son 0 php xml file xml-parsing

如何在PHP中对XML文件进行以下编辑.我基本上想保留一些元素并将这些元素写入新的XML文件.

所以,我知道如何打开新文件并准备编写,然后打开XML文件并逐行迭代:

$lines = fopen("file.xml", "r");
$new = fopen("newFile.xml", "w");
foreach($lines as $line){

    /* operations on each line here */
}
Run Code Online (Sandbox Code Playgroud)

我不想对每一行进行操作,而是对file.xml中的某些元素进行操作.

我需要做的是对每个<doc>元素(之间的一切<doc></doc>):

  1. echo "<doc>" 并打破$ new的新行.
  2. 写之间的一切<title></title>包括标签美元的新.
  3. 写之间的一切<url></url>包括标签美元的新.
  4. 写之间的一切<abstract><abstract>包括标签美元的新.
  5. echo "</doc>" 并打破一个新的界限.

然后转到下一个<doc> </doc>区块.

我非常感谢所有和任何帮助学习如何做到这一点.

小智 6

尝试使用simplexml库执行某些操作,如以下示例所示:

$xml = simplexml_load_file("file.xml"); //load file as SimpleXML object
$newXml = SimpleXMLElement(); // create new SimpleXML object

foreach ($xml->doc as $d){ // change "$xml->doc" to the path to doc in your file
    $doc = $newXml->addChild("doc"); // add <doc></doc>
    $doc->addChild("title", (string)$d->title); //add title child within doc
    $doc->addChild("url", (string)$d->url); //add url child within doc
    $doc->addChild("abstract", (string)$d->abstract); //add abstract child within doc
}
$new = fopen("newFile.xml", "w"); // open new file
fwrite($new, $newXml->asXML()); //write XML to new file using asXML method
fclose($new); // close the new file
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.你可以在这里找到simplexml的完整文档:http:这里有关于Stackoverflow的更多具体问题和答案: