PHP-删除两个字符串序列或标记之间的内容

PHP-删除两个字符串序列或标记之间的内容,php,xml,Php,Xml,我正在寻找一种从xml文件中删除部分字符串的方法。目前我有一些内容如下: <description>blah blah blah blah</description> 废话废话 我想用一个函数来查找 <description> & </description> & 并删除之间的内容。它还需要在整个xml文档中重复此操作,以删除其他描述标记之间的任何内容 我不知道如何开始尝试此操作,任何示例代码都将不胜感激。如果您的文档是完全XML的

我正在寻找一种从xml文件中删除部分字符串的方法。目前我有一些内容如下:

<description>blah blah blah blah</description>
废话废话
我想用一个函数来查找

<description> & </description>
&
并删除之间的内容。它还需要在整个xml文档中重复此操作,以删除其他描述标记之间的任何内容


我不知道如何开始尝试此操作,任何示例代码都将不胜感激。

如果您的文档是完全XML的,您可以使用DOMDocument扩展来操作它。 特地看 你可以这样写:

$dom = new DOMDocument;
$dom->loadXML(' YOUR XML CODE HERE ');
$descriptions = $dom->getElementsByTagName('description');
foreach ($descriptions as $description) {
   $description->nodeValue = '';
}
$xml = $dom->saveXML();

preg_替换可能会有所帮助。例如:$xml=preg_replace(“~()*?()()~msi”、“$1$2”、$original_xml);如何解析html/xml之前已经得到了回答。你能更具体地描述一下你的情况吗。您的代码中是否有文字符号,您需要修复它们?这并没有解释如何获取包含符号的元素。此外,如果XML中有文字符号,OP可能无法使用DOM打开文档,因为符号表示实体。他说“删除进一步描述标记之间的任何内容”。因此我假设符号只是一个占位符。显然,如果他只想在nodeValue为“&”时删除,那么在foreach循环中需要一个小测试。至于普通符号,它是正确的,因此“如果您的文档是完全XML的”。