Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP DOM:在XML数据中填充值_Php_Xml_Dom_Populate - Fatal编程技术网

PHP DOM:在XML数据中填充值

PHP DOM:在XML数据中填充值,php,xml,dom,populate,Php,Xml,Dom,Populate,给出: $xml = new DOMDocument(); $xml_store_inventory = $xml->createElement('store-inventory'); // highest layer $xml_item = $xml->createElement('item'); $xml_quantity = $xml->createElement('quantity'); $xml->appendChild($xml_store_invento

给出:

$xml = new DOMDocument();
$xml_store_inventory = $xml->createElement('store-inventory');  // highest layer
$xml_item = $xml->createElement('item');
$xml_quantity = $xml->createElement('quantity');

$xml->appendChild($xml_store_inventory);
$xml_store_inventory->appendChild($xml_item);
$xml_location->appendChild($xml_quantity);

因此,我设法使用DOM在PHP中创建了上述内容。我一直在网上搜索如何“填充”,但没有找到任何关于如何填充的信息

更具体地说,我希望这个看起来像这样

<?xml version="1.0"?>
<store-inventory>
  <item>
      <quantity></quantity>
  </item>
</store-inventory>

0
因此,我想添加/更改以下内容:

  • 将XML版本行更改为包含编码(我发现-->$XML=newDOMDocument('1.0','UTF-8');)
  • 向元素添加附加信息。e、 g.[项目]至[项目id=“abcd”]
  • 还有[数量]到[数量]0[/quantity]

  • 有人能帮我吗?蒂亚

    你已经很接近了

    2:设置属性:

    <?xml version="1.0" encoding="UTF-8"?>
    <store-inventory
    xmlns="http://..."
    xmlns:xsi="http://..."
    xsi:schemaLocation="http://...">
    
        <item item-id="abcd">
           <quantity>0</quantity>
        </item>
    </store-inventory>
    
    3:添加标记/元素时添加数据:

    // set/add an attribute:
    $xml_item->setAttribute('item-id', "abcd");
    

    2+:使用HTMLSpecialchars防止浏览器隐藏标记:

    // add an element with data:
    $xml_quantity = $xml->createElement('quantity', '0');
    

    你已经很接近了

    2:设置属性:

    <?xml version="1.0" encoding="UTF-8"?>
    <store-inventory
    xmlns="http://..."
    xmlns:xsi="http://..."
    xsi:schemaLocation="http://...">
    
        <item item-id="abcd">
           <quantity>0</quantity>
        </item>
    </store-inventory>
    
    3:添加标记/元素时添加数据:

    // set/add an attribute:
    $xml_item->setAttribute('item-id', "abcd");
    

    2+:使用HTMLSpecialchars防止浏览器隐藏标记:

    // add an element with data:
    $xml_quantity = $xml->createElement('quantity', '0');
    


    嗯,我刚刚注意到了。在访问了我以前的一些帖子之后,它似乎是用来为我的帖子标记解决方案的。我没有想到要这样做。对不起,我是新来的。没问题,只是提醒一下;)。在您的问题中我不理解的是:“1.更改XML版本行以包含编码”我在XML中都看到了版本和编码。您想更改什么?@hakre,上面的第三段代码是我希望XML的样子。我已经更新了我的帖子,所以我想出了1。现在我需要找出2和3!我为2和3添加了一个答案。关于UTF-8编码:这是XML默认值,因此不需要实际添加它。但这样做也不是问题;)嗯,我刚刚注意到了。在访问了我以前的一些帖子之后,它似乎是用来为我的帖子标记解决方案的。我没有想到要这样做。对不起,我是新来的。没问题,只是提醒一下;)。在您的问题中我不理解的是:“1.更改XML版本行以包含编码”我在XML中都看到了版本和编码。您想更改什么?@hakre,上面的第三段代码是我希望XML的样子。我已经更新了我的帖子,所以我想出了1。现在我需要找出2和3!我为2和3添加了一个答案。关于UTF-8编码:这是XML默认值,因此不需要实际添加它。但这样做也不是问题;)嘿,谢谢你的耐心!我刚刚在看DOM手册时也发现了#2。我还在习惯这个“->”。这对我来说很奇怪。谢谢你的帮助!实际上还有两个问题需要回答:对于元素“storeinventory”,这些属性(xmlns、xmlns:xsi等)是否仅在括号内用空格分隔?另外,是否有方法回显$xml->saveXML();要在浏览器上实际打印?我一直在“查看源代码”以查看结果。不客气,很高兴我能帮助您<代码>->用于访问对象方法/函数和属性/变量。手册中解释了DomDocument的所有方法和属性。既然你已经在那里挖了,你就在正确的轨道上了。当您开始使用DomDocument时,它需要阅读很多内容,但是您使用它的次数越多,它就会变得越容易。对于第二个附加问题,我已经更新了答案。第一件事我不清楚你的意思。我没有得到您问题中代码的名称空间声明。但是,默认情况下,这些属性都是各自的属性,因此由空格分隔。超级棒。感谢您的快速回复!嘿,谢谢你的耐心!我刚刚在看DOM手册时也发现了#2。我还在习惯这个“->”。这对我来说很奇怪。谢谢你的帮助!实际上还有两个问题需要回答:对于元素“storeinventory”,这些属性(xmlns、xmlns:xsi等)是否仅在括号内用空格分隔?另外,是否有方法回显$xml->saveXML();要在浏览器上实际打印?我一直在“查看源代码”以查看结果。不客气,很高兴我能帮助您<代码>->用于访问对象方法/函数和属性/变量。手册中解释了DomDocument的所有方法和属性。既然你已经在那里挖了,你就在正确的轨道上了。当您开始使用DomDocument时,它需要阅读很多内容,但是您使用它的次数越多,它就会变得越容易。对于第二个附加问题,我已经更新了答案。第一件事我不清楚你的意思。我没有得到您问题中代码的名称空间声明。但是,默认情况下,这些属性都是各自的属性,因此由空格分隔。超级棒。感谢您的快速回复!