我如何通过在 PHP 中使用简单 XML 创建 2 个相同的 XML-标签?

How could I create 2 same XML-Tags by using SimpleXML in PHP?

我写了这段 PHP 代码来创建 XML 数据:

$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><Products></Products>");
$xml->addChild("Product");
$xml->Product->addChild("Name", "P1");
$xml->Product->addChild("Price", "10");
$xml->addChild("Product");
$xml->Product->addChild("Name", "P2");
$xml->Product->addChild("Price", "20");

我得到的XML是:

<?xml version="1.0" encoding="utf-8"?>
<Products>
  <Product>
    <Name>P1</Name>
    <Price>10</Price>
    <Name>P2</Name>
    <Price>20</Price>
  </Product>
  <Product/>
</Products>

但我想要的是:

<?xml version="1.0" encoding="utf-8"?>
<Products>
  <Product>
    <Name>P1</Name>
    <Price>10</Price>
  </Product>
  <Product>
    <Name>P2</Name>
    <Price>20</Price>
  </Product>
</Products>

我怎样才能得到正确的XML?谢谢!

只需对此进行简单更改即可...

$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><Products></Products>");
$product = $xml->addChild("Product");
$product->addChild("Name", "P1");
$product->addChild("Price", "10");
$product = $xml->addChild("Product");
$product->addChild("Name", "P2");
$product->addChild("Price", "20");

问题是您在添加子元素时重新选择了 XML 根中的第一个元素。