2011-07-08 58 views
2

我想听听是否有人能够帮助替换我的大型XML文件的HTML标记。使用记事本++去除特定的HTML标记

XML文件有我自己的模式,它都很好。但我需要删除<sspan>, <style>, <div><p>标签中的属性。

举一个例子,我需要保持所有<ul>, <ol>, <li>, <strong>, <a>, <img>等标签,但除去<div>(带属性),<span>(带属性),并在<p>标签属性。

我已经尝试过很多来自这个网站和许多其他网站的例子。但其中大多数没有奏效。

+0

首先,[不要使用正则表达式来解析XML](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454# 1732454)。这就是说,你能列出一些你尝试过的没有奏效的东西吗? –

回答

4

an answer I posted yesterday报价:

我听说分别一些非常好的东西约 Beautiful SoupHTML PurifierHTML Agility Pack,其中使用Python,PHP和.NET ,。相信我 - save yourself some pain并使用那些 来代替。

强烈建议你不要使用这个正则表达式。没有一个正常的正则表达式可以工作,或者甚至可能接近工作。然而,一个体面的XML解析器可以很容易地做到这一点。我不确定你有什么编程语言可以访问,但如果你可以使用PHP,.NET或其他编程语言,你可以使用上面的解析器来查找每个span,style,divp,并删除属性或整个标签。

jQuery对DOM操作有一些很好的功能,就像你描述的那样,你可以用它来生成HTML然后剪切和粘贴。

如果你绝对必须使用正则表达式,你可以试试这个:

  • 模式:<\s*/?\s*(span|style|div)\b[^>]*?>
  • 更换:(无)

  • 模式:<\s*p\b[^>]*?>
  • 更换: <p>
+1

嗨贾斯汀,我从来没有想过我会从这个世界得到如此完美的答案。谢谢!其实我试过你提到的3个代码,因为我知道一些PHP,我尝试了PHP方法。完美工作!此外,正则表达式 - 我现在同意正则表达式不是一个很好的解决方案来杀死这种HTML标签,但对于这种情况。 RegEx模式非常有效!再次感谢你。 –