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

时间:2014-02-18 23:13:16

标签: php xml simplexml

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

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

示例xml:

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

1 个答案:

答案 0 :(得分:1)

不确定我是否理解正确,但您想加载XML,保留结构但删除值? E.g。

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

这有意义吗?