我有像这样的'XML`,
<text>
<tspan fill='rgba(0,0,0,0)'>abc</tspan>
</text>
<rect fill='rgba(0,0,0,0)'></rect>
我正在尝试将rgba(
替换为rgb(
,但它替换所有实例都发生在数据中。我只想替换tspan
标记的所有实例。
我尝试了str_replace
,但将所有实例替换为数据。
输出应该如下所示
<text>
<tspan fill='rgb(0,0,0,0)'>abc</tspan>
</text>
<rect fill='rgba(0,0,0,0)'></rect>
答案 0 :(得分:0)
您仍然可以使用str_replace,但请使用&#39; find&#39;参数有点长的字符串:
str_replace("<tspan fill='rgba(0,0,0,0)", "<tspan fill='rgb(0,0,0,0)", $your_string);
但要小心,这不是对大量数据执行此操作的最佳方法。
答案 1 :(得分:0)
试试这个regExp:
rgba(?=(.*)<\/tspan>)
$re = "/rgba(?=(.*)<\\/tspan>)/";
$str = "<text><tspan stroke='' opacity='' fill='rgba(0,0,0,0)'>abc</tspan><tspan fill='rgba(0,0,0,0)'><h1>anything</h1></tspan></text><rect fill='rgba(0,0,0,0)'></rect>";
$subst = "rgb";
$result = preg_replace($re, $subst, $str);