如何使用 PHP 删除所有 xml 属性值?

Posted

技术标签:

【中文标题】如何使用 PHP 删除所有 xml 属性值?【英文标题】:How can I remove all xml attribute values with PHP? 【发布时间】:2014-03-19 00:29:49 【问题描述】:

使用 php SimpleXML 从 xml 文件中删除所有属性 values(不是属性)的最佳方法是什么?

条件: 输入 xml 文件嵌套有已知的属性名称。 输出 xml 文件保留所有属性名称,但不保留值。

示例 xml:

<xml>
 <animal>
  <dog weight="">
   <dogChild1 weight=""></dogChild1>
   <dogChild2 weight=""></dogChild2>
  </dog>
  <cat weight="">
  </cat>
 </animal>
 <...>
 </...>
</xml>

【问题讨论】:

【参考方案1】:

不确定我是否理解正确,但您想加载 XML、保留结构但删除值?例如

XML 文件:

<EXAMPLE><PETS><PET><TYPE>Dog</TYPE><AGE>2</AGE></PET><PET><TYPE>CAT</TYPE><AGE>6 Months</AGE></PET></PETS></EXAMPLE>

那么对于该文件内容,您想删除已填充到TYPEAGE 中的值吗?如果是这样,这样的事情可能会起作用:

$objPetsXml = simplexml_load_string($strFileContents);

foreach($objPetsXml->PETS->PET as $objPet) 
    $objPet->TYPE = "";
    $objPet->AGE = "";


// Build your new XML and do whatever

这有意义吗?

【讨论】:

以上是关于如何使用 PHP 删除所有 xml 属性值?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 返回 XML 字符串,并将值添加到属性缺失值

使用 JSON 将 XML 转换为 PHP 数组正在删除某些元素的属性

如何使用php在xpath中使用变量作为属性值?

php从数据库中删除值并使其他不变

如何使字符串“XML 安全”?

使用正则表达式从字符串中删除属性值不是特定值的所有 xml 节点