我尝试使用 php 将一些可怕的无效 html 代码映射到我以后需要的 xml 结构。这工作得很好,但总有一些我无法处理的部分。所以决定是,只删除该代码,以便 xml 保持有效。这就是它的样子。
<body>
<item>abc</item>
<item>def</item>
unparsable rest
</body>
所以目标是找到一个解决方案(可能是正则表达式,但我愿意接受任何解决方案)来删除“无法解析的其余部分”。
我尝试在这个正则表达式中使用 preg_replace
/<\/item>(((?!item).)*)\s*<\/body>/iU
它工作得很好,完全匹配我想要在 $1 中拥有的部分,最后一个 和 之间的所有东西,但是由于 xmls 非常大,计算只是在几毫秒后崩溃。我知道正则表达式在做负前瞻方面不太好,但我不认为它那么糟糕。
所以需要一个更有效的解决方案。不幸的是,我不能使用 strrpos,因为在