gpt4 book ai didi

PHP XML 如何创建嵌套节点?

转载 作者:行者123 更新时间:2023-12-02 09:24:58 25 4
gpt4 key购买 nike

我使用 php DOMDocument 创建并保存 XML 文件。这是我的代码

$doc = new DOMDocument();
$document = $doc->createElement('DOCUMENT');
$document->nodeValue = '';
$doc->appendChild($document);

$order = $doc->createElement('ORDER');
$order->nodeValue = '';
$doc->appendChild($order);

$ele = $doc->createElement('Reportvariable1');
$ele->nodeValue = '';
$doc->appendChild($ele);

$ele = $doc->createElement('Reportvariable1');
$ele->nodeValue = '';
$doc->appendChild($ele);

$ele = $doc->createElement('Reportvariable1');
$ele->nodeValue = '';
$doc->appendChild($ele);

$ele = $doc->createElement('Reportvariable1');
$ele->nodeValue = '';
$doc->appendChild($ele);

$doc->appendChild($ele);
$doc->save('order_xml/Order_.xml');

它的输出很简单:

<?xml version="1.0"?>
<DOCUMENT></DOCUMENT>
<ORDER></ORDER>
<Reportvariable1></Reportvariable1>
<Reportvariable1></Reportvariable1>
<Reportvariable1></Reportvariable1>
<Reportvariable1></Reportvariable1>

如何创建这样的嵌套节点?

<?xml version="1.0"?>
<DOCUMENT>
<ORDER>
<Reportvariable1></Reportvariable1>
<Reportvariable1></Reportvariable1>
<Reportvariable1></Reportvariable1>
<Reportvariable1></Reportvariable1>
</ORDER>
</DOCUMENT>

最佳答案

您使用 3 个步骤将新节点添加到 DOM。

  1. 使用文档对象的方法创建节点
  2. 使用 appendChild() 将节点附加到父节点(文档或元素)
  3. 可选择在元素节点上设置属性。

appendChild() 返回节点。因此,您可以嵌套 create* 调用。

不要设置 DOMElement::$nodeValue。它具有非标准行为,需要特殊转义。使用 DOMElement::$textContent 属性。或者创建一个文本节点并附加它。

$dom = new DOMDocument();
$document = $dom->appendChild(
$dom->createElement('DOCUMENT')
);
$order = $document->appendChild(
$dom->createElement('ORDER')
);
// 3 nodes setting text content
for ($i = 1; $i <= 3; $i++) {
$order
->appendChild(
$dom->createElement('Reportvariable1')
)
->textContent = 'some text content' . $i;
}
// 3 nodes appending a text node
for ($i = 3; $i <= 6; $i++) {
$order
->appendChild(
$dom->createElement('Reportvariable1')
)
->appendChild(
$dom->createTextNode('some text content' . $i)
);
}
$dom->formatOutput = true;
echo $dom->saveXml();

输出:

<?xml version="1.0"?>
<DOCUMENT>
<ORDER>
<Reportvariable1>some text content1</Reportvariable1>
<Reportvariable1>some text content2</Reportvariable1>
<Reportvariable1>some text content3</Reportvariable1>
<Reportvariable1>some text content4</Reportvariable1>
<Reportvariable1>some text content5</Reportvariable1>
<Reportvariable1>some text content6</Reportvariable1>
</ORDER>
</DOCUMENT>

关于PHP XML 如何创建嵌套节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38587899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com