正则表达式剥离标签,保留CDATA

时间:2010-06-18 14:22:02

标签: xml regex cdata

  

可能重复:
  RegEx match open tags except XHTML self-contained tags

大家好,

我知道每个人都喜欢正则表达式问题,所以这是我的。我有一个XML树,其中一些节点包含CDATA。如何只返回包含数据的字符串?

让我们看一个例子

<xml>
  <node>I'm plain text.</node>
  <node><![CDATA[I'm text in cdata... and may contain html, <strong>yikes!</strong>]]></node>
</xml>

会返回

I'm plain text. I'm text in cdata... and may contain html, yikes!

我读过关于不使用普通语言解析不规则语言的问题,但我确信这是可行的。你觉得怎么样?

谢谢, 凯文

编辑: 这是一个需要快速而肮脏的解决方案来处理几行XML的问题。我对最初的拒绝感到惊讶,但是从进一步阅读(特别是后来提供的链接)我看到有经验的程序员知道应该尽可能避免的事情。活到老,学到老。感谢。

2 个答案:

答案 0 :(得分:5)

不要使用正则表达式,请使用XML / HTML解析器。

这个问题已经被打死了。

答案 1 :(得分:1)

请查看boilerpipe,了解解决此问题的难度。