请考虑XML文件中的以下行(从第三方来源生成):
<record ObTime="2017-05-10T23:30" data_value="Ocean Park "The Sea WX" WA US" />
正如您所看到的,属性data_value
在值中引用了字符串,这会导致XML验证器傻笑和爆炸。
任何给定的XML文件都可能有数千行。有没有办法将REGEX应用于整个文件?而且,REGEX会用更温和的东西替换报价?
答案 0 :(得分:1)
使用下面的Regex,您可以单独匹配这些双引号以进行进一步修改:
(?:="|"\s+(?:\w+="|\/>))(*SKIP)(?!)|"
通过使用(*SKIP)(?!)
,您可以在每次成功比赛后强制引擎跳过交替的第一侧。
PHP代码(删除引号):
echo preg_replace('~(?:="|"\s+(?:\w+="|\/>))(*SKIP)(?!)|"~', '', $xml);