在PHP节点值和元素中创建的Xml

时间:2014-10-19 10:27:03

标签: php xml domdocument

我根本不理解这些节点值的东西我试图在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,name,price,quantity,description,qonhold, qsold 保存在“item”下,保存在“item

1 个答案:

答案 0 :(得分:2)

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

// 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>`