使用正则表达式删除嵌套元素
本文关键字:嵌套 元素 删除 正则表达式 | 更新日期: 2023-09-27 18:27:34
我是regex的新手。我只想从<firstpar>
中捕获文本部分,或者删除所有<asmbly>
及其所有子节点和值。有人能教我怎么做吗。以下是xml字段的快照。谢谢
<?xml version="1.0" encoding="UTF-8"?>
<firstpar>
<thumbcred>Sample 1 thumbcred</thumbcred>
<asmbly>
<caption>
<p><work ty="drawing">Two Fabulous Animals</work>Sample 1 <e> sample 1caption </e></p>
</caption>
<credit>Paul Miller/AP</credit>
<asset id="126099" hgt="450" wdth="289" tmstp="24-OCT-08"
bintype="2" filename="images/sample126099.jpg" source="eb" bighgt="1600"
bigwdth="1029" bigfilename="botany003.jpg"
bigdeployfullfilename="/eb-media/99/126099-050-CAD1EF0A.jpg"
/>
<copyright>Copyright © 1994-2013 Encyclopædia Britannica, Inc.</copyright>
</asmbly>
Sample firstpar text <e>Sample e</e> just some
text <sub>sample sub </sub><e>sample e text again</e> more text with sup sub e.
</firstpar>
不幸的是,regex的一个已知限制是它不能处理嵌套
您可以也应该使用任何语言中可用的XML解析器。
如果您有一个格式非常特殊的XML片段,并且有一个非常特定的目标,那么可以使用正则表达式对其执行一些操作,但一旦您尝试将正则表达式应用于非特定的XML片段,它将无法处理它。