删除SGML中的多个标记

时间:2010-09-09 11:11:11

标签: c# sgml

我有一个像

这样的sgml文件
<p><p><data>sdlksdskdmskdmsamdakmdksam<p></data>...

我的问题是如何删除一个标记<p>并保持另一个标记完整...哪个正则表达式可以变换......

1 个答案:

答案 0 :(得分:1)

如果您的SGML是这样的,它可以作为XML处理,那么XProc是一种很好的技术,只需一步,如:

<p:unwrap match="p[parent::p]"/>

(假设您要删除所有自嵌套的p元素,直到p永远不会自行包装)。

你肯定希望用regexp处理SGML / XML,除非你100%确定你将处理具有某种明确的词汇形式的子集。例如,考虑如何使用正则表达式处理带有注释的内容:

<p><!-- <p> commented out--><foo><p/><p/></foo></p>

!!