【问题标题】:Regex to strip tags, retain CDATA [duplicate]正则表达式去除标签,保留 CDATA [重复]
【发布时间】:2011-03-05 11:10:38
【问题描述】:

可能重复:
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 的问题。我对最初的直接拒绝感到惊讶,但通过进一步阅读(特别是从稍后提供的链接)我看到有经验的程序员知道这是应该尽可能避免的事情。活到老,学到老。谢谢。

【问题讨论】:

  • @Piskvor:你为什么要两次链接到同一个问题?
  • 是的,明白了……还有两个指向同一个解雇的链接。有用,谢谢。
  • @Tim Pietzcker:糟糕,我的错。没有注意到选择“复制”时会自动创建评论。
  • 当有人问用叉子刺自己的脸最好的方法是什么时,最直接的回答是“不要用叉子刺自己的脸”。即使一个人在原则上可以做得更好或更差,根据所采用的技术用叉子刺自己的脸。

标签: xml regex cdata


【解决方案1】:

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

这个问题已经被打死了。

【讨论】:

【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-03
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    相关资源
    最近更新 更多