在PHP中的foreach循环中修改XML
Modify XML in foreach loop in PHP
如何update/modify foreach循环中的XML?
我有一个 XML 像这样:
<items>
<item>
<client>1</client>
<retailer>RET1</retailer>
<code>c553d8be7f3e88bda6a26b8e7eacd11a6001e0ba5f3c6e26ddbf4a08d9e277f3</code>
<id>1234567891011</id>
</item>
<item>
<client>1</client>
<retailer>RET1</retailer>
<code>9afb1b44a582d76159626d05aaf414983625530d83cbfa40a1359bf0afd9225b</code>
<id>1234567891011</id>
</item>
<item>
<client>1</client>
<retailer>RET1</retailer>
<code>90f5ff04e07b0701b6db3c6e44ed2f1636b64fb9eb78f9121dc684b8b8339741</code>
<id>1234567891011</id>
</item>
</items>
在我的代码中有一个 foreach 循环:
foreach( $xml as $code )
{
// Remove each item, so to keep the only one inside, and each time move forward by removing all other items
// if ($xml->node->code != $code )
// remove it
}
我不知道如何删除每次不等于代码值的节点,有什么建议吗?
尝试使用 domdocument 和 removechild 删除节点。
$client = $items->getElementsByTagName('client')->item(0);
$items->removeChild($client);
您可以像下面这样操作:
<?php
$xml = simplexml_load_string($string);//$string contains your xml
$item = $xml->item;
$count_node = count($item);
for($i=0;$i<$count_node;$i++)
{
echo $item[$i]->code;// access the tags like this and check your conditions
}
?>
如果您仍然存在任何问题,请告诉我
如何update/modify foreach循环中的XML?
我有一个 XML 像这样:
<items>
<item>
<client>1</client>
<retailer>RET1</retailer>
<code>c553d8be7f3e88bda6a26b8e7eacd11a6001e0ba5f3c6e26ddbf4a08d9e277f3</code>
<id>1234567891011</id>
</item>
<item>
<client>1</client>
<retailer>RET1</retailer>
<code>9afb1b44a582d76159626d05aaf414983625530d83cbfa40a1359bf0afd9225b</code>
<id>1234567891011</id>
</item>
<item>
<client>1</client>
<retailer>RET1</retailer>
<code>90f5ff04e07b0701b6db3c6e44ed2f1636b64fb9eb78f9121dc684b8b8339741</code>
<id>1234567891011</id>
</item>
</items>
在我的代码中有一个 foreach 循环:
foreach( $xml as $code )
{
// Remove each item, so to keep the only one inside, and each time move forward by removing all other items
// if ($xml->node->code != $code )
// remove it
}
我不知道如何删除每次不等于代码值的节点,有什么建议吗?
尝试使用 domdocument 和 removechild 删除节点。
$client = $items->getElementsByTagName('client')->item(0);
$items->removeChild($client);
您可以像下面这样操作:
<?php
$xml = simplexml_load_string($string);//$string contains your xml
$item = $xml->item;
$count_node = count($item);
for($i=0;$i<$count_node;$i++)
{
echo $item[$i]->code;// access the tags like this and check your conditions
}
?>
如果您仍然存在任何问题,请告诉我