【问题标题】:Xml created in PHP node values and elements在 PHP 节点值和元素中创建的 XML
【发布时间】:2014-10-19 10:27:03
【问题描述】:

我根本不理解这些节点值的东西,我试图在 php 中复制 xml 设计,但是
我试图通过 php 复制的文件有很多麻烦。

   <items>
        <item>
              <id></id>
              <name></name>
              <price></price>
              <quantity></quantity>
              <description></description>
              <qonhold></qonhold>
              <qsold></qsold>
        </item>
     </items>

而重新创建的 PHP 文件几乎全部完成

  $dom = new DOMDocument("1.0");

  // create root element
  $root = $dom->createElement("Items");
  $dom->appendChild($root);
  $dom->formatOutput=true;

  // create child element
  $item = $dom->createElement("item");
  $dom->appendChild($item);

  // create text node
  $id = $dom->createElement("id");
  $root->appendChild($id);

  $name = $dom->createElement("name");
  $root->appendChild($name);


  $price = $dom->createElement("price");
  $root->appendChild($price);

  $quantity = $dom->createElement("quantity");
  $root->appendChild($quantity);

  $description = $dom->createElement("description");
  $root->appendChild($description);


  $qonhold = $dom->createElement("qonhold");
  $root->appendChild($qonhold);


  $qsold = $dom->createElement("qsold");
  $root->appendChild($qsold);

我遇到的问题是将其全部保存在 "items" 作为根目录下.. 但我无法获得所有 id、名称、价格、数量、描述、qonhold、 qsold 仅保存在 "item" 下,后者保存在 "items

【问题讨论】:

    标签: php xml domdocument


    【解决方案1】:

    您应该在创建的项目节点上使用-&gt;appendChild(),而不是&lt;items&gt;的根:

    // create child element
    $item = $dom->createElement("item");
    $dom->appendChild($item);
    
    // create text node
    $id = $dom->createElement("id");
    $item->appendChild($id); // item->appendChild not $root->appendChild
    

    应该是这样的:

    $dom = new DOMDocument("1.0");
    
    // create root element
    $root = $dom->createElement("Items");
    $dom->appendChild($root);
    $dom->formatOutput=true;
    
    // create child element
    $item = $dom->createElement("item");
    $root->appendChild($item); // append to `<Items>`
    
    // create text node
    $id = $dom->createElement("id");
    $item->appendChild($id); // append to `<item>`
    
    $name = $dom->createElement("name");
    $item->appendChild($name); // append to `<item>`
    
    
    $price = $dom->createElement("price");
    $item->appendChild($price); // append to `<item>`
    
    $quantity = $dom->createElement("quantity");
    $item->appendChild($quantity); // append to `<item>`
    
    $description = $dom->createElement("description");
    $item->appendChild($description); // append to `<item>`
    
    
    $qonhold = $dom->createElement("qonhold");
    $item->appendChild($qonhold); // append to `<item>`
    
    
    $qsold = $dom->createElement("qsold");
    $item->appendChild($qsold); // append to `<item>`
    

    【讨论】:

    • 谢谢你让我觉得这更有意义,这就是问题所在。我只是很难理解如何将根目录更改为项目。但是谢谢..
    • @VaughanD 我很高兴这有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 2011-10-05
    相关资源
    最近更新 更多