【问题标题】:Writing xml tags with SimpleXml使用 SimpleXml 编写 xml 标签
【发布时间】:2014-11-15 11:35:02
【问题描述】:

我有这个 xml 文件:

<?xml version="1.0"?>
<products>
<product>
  ... some nodes 
</product>

<product>
  ... some nodes 
</product>

<product>
  ... some nodes 
</product>
</products>

我写了这个 php 代码:

<?php
....
....
$xml=simplexml_load_file("myfile.xml") or die("Error: Cannot create object");

foreach ($xml->xpath("/products/product") as $prod) 
{
    $xmlname = $xml->addChild("name",$name);
    $xmlid = $xml->addChild("id",$id);
    $xmlprice = $xml->addChild("price",$price);
}
$xml->asXML ("result_file.xml");
?>

这行得通,但不是我想要的。它使用新节点创建文件“result_file.xml”:$name、$id 和 $price。问题是所有这些节点都插入到 xml 文件的末尾,如下所示:

<?xml version="1.0"?>
<products>
<product>
  ... some nodes 
</product>

<product>
  ... some nodes 
</product>

<product>
  ... some nodes 
</product>
  <name>$name</name>
  <id>$id</id>
  <price>$price</price>
  <name>$name</name>
  <id>$id</id>
  <price>$price</price>
  <name>$name</name>
  <id>$id</id>
  <price>$price</price>
</products>

但我想在他们的产品节点之后插入所有这些节点。 比如我想获取:

<?xml version="1.0"?>
<products>
<product>
  <name>$name</name>
  <id>$id</id>
  <price>$price</price>
  ... some nodes 
</product>

<product>
  <name>$name</name>
  <id>$id</id>
  <price>$price</price>
  ... some nodes 
</product>

<product>
  <name>$name</name>
  <id>$id</id>
  <price>$price</price>
  ... some nodes 
</product>
</products>

【问题讨论】:

    标签: xml simplexml


    【解决方案1】:

    我认为您在这里遇到的问题是将子 XML 元素添加到根 $xml。

    查看您的代码,如果您要更改以下内容:

    foreach ($xml->xpath("/products/product") as $prod) {
        $xmlname = $prod->addChild("name",$name);
        $xmlid = $prod->addChild("id",$id);
        $xmlprice = $prod->addChild("price",$price);
    }
    $xml->asXML ("result_file.xml");
    

    应该可以的。

    $prod 被视为每个 &lt;product&gt; 的一个实例

    【讨论】:

      猜你喜欢
      • 2011-01-06
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      • 2013-09-30
      • 2015-03-14
      相关资源
      最近更新 更多