【问题标题】:php - Remove node and keeping it's contentphp - 删除节点并保留其内容
【发布时间】:2016-07-14 06:45:36
【问题描述】:

我有这样的xml:

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

我想删除 &lt;0&gt;&lt;/0&gt;&lt;1&gt;&lt;/1&gt; 并且新的 xml 将是:

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

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

【问题讨论】:

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

标签: php xml


【解决方案1】:

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

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

该模式匹配一​​个仅由数字组成且没有属性的标签。

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

【讨论】:

    猜你喜欢
    • 2021-06-11
    • 2020-08-30
    • 2023-03-11
    • 2019-10-03
    • 2018-10-06
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多