问候, 我已经阅读了关于这个主题的一些主题,但实际上我无法找到或想出一个适当的解决方案(参见例如:Regular expression to remove XML tags and their content)。
我有一个像这样的xml标签:
<bla_tag size="100"
diameter="50"
ratio="0.2"
path="/user/home/something.pdf">
</bla_tag>
目标:使用正则表达式删除<bla_tag ...>
之间的所有内容。
问题:每个bla_tags(文件中大约1000个bla-tag)中的大小等值都会发生变化。
尝试失败:我尝试使用:<bla_tag .*?>
(?使其不那么贪婪......)。
失败的结果:仅标记了<bla_tag
,但未标记整个括号内的内容!
我做错了什么 - 或者实际上是否有可能基于正则表达式来解决这个问题(我在某处读到由于xml属性是第2类语言而无法实现,你可以确认吗?)< / p>
答案 0 :(得分:5)
您想阅读RegEx match open tags except XHTML self-contained tags
严重。
使用xml解析器。 (说实话,它们并不难用)。它们通常有两种版本之一 - SAX和DOM,你可能更喜欢SAX。
我最喜欢的解析器是expat,但它们都有它们的微妙之处,所以它并不总是一刀切。