过去一小时我一直在努力,而且无法找到解决方案。
我在xml文件中有这些标记
<products>
<product>
<product_id>1472456</product_id>
<model>BSTWH2R</model>
<image><![CDATA[http://www.specsserver.com/CACHE/FRGGRNGOCAFM.JPG]]></image>
<price>100.0000</price>
<category></category>
<brand>Lumisource</brand>
<title>H2 Bar Stool - Red</title>
<productpageurl><![CDATA[http://www.appliance.com/index.php?route=product/product&modelnumber=BSTWH2R&path=1&product_id=1472456]]></productpageurl>
</product>
<product>
<product_id>1472457</product_id>
<model>BSTWH2W</model>
<image><![CDATA[http://www.specsserver.com/CACHE/FREVSCQLWITW.JPG]]></image>
<price>100.0000</price>
<category></category>
<brand>Lumisource</brand>
<title>H2 Bar Stool - White</title>
<productpageurl><![CDATA[http://www.appliance.com/index.php?route=product/product&modelnumber=BSTWH2W&path=1&product_id=1472457]]></productpageurl>
</product>
我希望将其更改为以下代码,只在下一行中再次复制品牌标签并在其后有一个空格
<products>
<product>
<product_id>1472456</product_id>
<model>BSTWH2R</model>
<image><![CDATA[http://www.specsserver.com/CACHE/FRGGRNGOCAFM.JPG]]></image>
<price>100.0000</price>
<category></category>
<brand>Lumisource</brand>
<brand>Lumisource </brand>
<title>H2 Bar Stool - Red</title>
<productpageurl><![CDATA[http://www.appliance.com/index.php?route=product/product&modelnumber=BSTWH2R&path=1&product_id=1472456]]></productpageurl>
</product>
<product>
<product_id>1472457</product_id>
<model>BSTWH2W</model>
<image><![CDATA[http://www.specsserver.com/CACHE/FREVSCQLWITW.JPG]]></image>
<price>100.0000</price>
<category></category>
<brand>Lumisource</brand>
<brand>Lumisource </brand>
<title>H2 Bar Stool - White</title>
<productpageurl><![CDATA[http://www.appliance.com/index.php?route=product/product&modelnumber=BSTWH2W&path=1&product_id=1472457]]></productpageurl>
</product>
答案 0 :(得分:0)
编辑:
使用此模式(<brand>)([^<]+)(<\/brand>)
Demo
( # Capturing Group (1)
<brand> # "<brand>"
) # End of Capturing Group (1)
( # Capturing Group (2)
[^<] # Character not in [<] Character Class
+ # (one or more)(greedy)
) # End of Capturing Group (2)
( # Capturing Group (3)
< # "<"
\/ # "/"
brand> # "brand>"
) # End of Capturing Group (3)
答案 1 :(得分:0)
我会做以下事情:
(<brand>([^<]+)</brand>)
替换为:
\1\n<brand>\2 </brand>
因为您只想使用品牌标签。这将复制整行,然后将为您提供一个新行,其中包含“品牌”中的内容(一切都达到下一个非'小于'),并添加一个空格。祝你好运!
答案 2 :(得分:0)
以下正则表达式保留缩进以及换行符的类型:
(([ \t]*<brand>[^<]*)([^\r\n]+[\r\n]+))
使用此作为替换字符串:
\1\2 \3
在行动here at regex101中查看。
可视化。 (单击图像进行交互式演示):