PHP DOM:在 XML 数据中填充值

发布于 2024-11-18 22:02:29 字数 1180 浏览 1 评论 0原文

$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);

给出:

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

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

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

<?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>

所以,我想添加/更改以下内容:

  1. 更改 XML 版本行以包含编码(刮掉这个,我发现 --> $xml = new DOMDocument( '1.0', 'UTF-8');)
  2. 向元素添加附加信息。例如 [item] 到 [item item-id="abcd"]
  3. 还有 [quantity] 到 [quantity]0[/quantity]

有人可以帮我吗?蒂亚!

$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);

gives:

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

So, I managed to create the above in PHP using DOM. I've been searching online on how to "populate," but I'm not finding any information on how to do this.

More specifically, I'd like this to look like this

<?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>

So, I'd like to add/change the following:

  1. change the XML version line to include encoding (scrape this, I figured out --> $xml = new DOMDocument('1.0', 'UTF-8');)
  2. Add additional information to an element. e.g. [item] to [item item-id="abcd"]
  3. Also [quantity] to [quantity]0[/quantity]

Can someone help me with this? TIA!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

山色无中 2024-11-25 22:02:29

你已经很接近了。

2: 设置属性:

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

3: 添加标签/元素时添加数据:

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

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

echo nl2br(html_specialchars($xml->saveXML(), ENT_QUOTES));

You're already pretty close.

2: set an attribute:

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

3: add data while adding a tag/element:

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

2+: Use HTMLSpecialchars to prevent the browser to hide the tags:

echo nl2br(html_specialchars($xml->saveXML(), ENT_QUOTES));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文