php - 删除节点并保留其内容

时间:2016-07-14 06:45:36

标签: php xml

我有这样的xml:

<parent>
  <0>
    <url>
      <loc>name1</loc>
      <date>monthly</date>
    </url>
  </0>
  <1>
    <url>
      <loc>alexJones</loc>
      <date>monthly</date>
    </url>
  </1>
</parent>

我想删除<0></0><1></1>新的xml将是:

<parent>
    <url>
       <loc>name1</loc>
       <date>monthly</date>
    </url>
    <url>
       <loc>alexJones</loc>
       <date>monthly</date>
    </url>
</parent>

我已经知道我可以使用xml-&gt; children()来检索xml节点, 但有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这是一个无效的XML,libxml不会加载它。因此,这可能是在XML字符串上使用正则表达式有效的例外之一。

$repairedXml = preg_replace('(</?\\d+>)', '', $invalidXml);

模式匹配仅包含数字且没有属性的标记。

这些标记名称无效,标记名称不能以数字开头。