Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-删除节点并保留其内容_Php_Xml - Fatal编程技术网

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

php-删除节点并保留其内容,php,xml,Php,Xml,我有这样的xml: <parent> <0> <url> <loc>name1</loc> <date>monthly</date> </url> </0> <1> <url> <loc>alexJones</loc> <date>monthly&

我有这样的xml:

<parent>
  <0>
    <url>
      <loc>name1</loc>
      <date>monthly</date>
    </url>
  </0>
  <1>
    <url>
      <loc>alexJones</loc>
      <date>monthly</date>
    </url>
  </1>
</parent>
我想删除,新的xml将是:

<parent>
    <url>
       <loc>name1</loc>
       <date>monthly</date>
    </url>
    <url>
       <loc>alexJones</loc>
       <date>monthly</date>
    </url>
</parent>
我已经知道我可以使用xml->children检索xml节点,
但是有什么建议吗?

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

$repairedXml = preg_replace('(</?\\d+>)', '', $invalidXml);
该模式匹配一个只包含数字而不包含属性的标记


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

如果知道节点的名称或至少知道节点的模式,可以使用str_replace或preg_replace