我正在使用Kate处理文本以创建XML文件,但遇到了障碍。该文本现在包含我需要根据其内容删除的其他数据。
具体来说,我有一个XML元素,称为
如果
<input>
我不知道任何
最简单的部分是我要删除的内容的开头。困难的部分是到达结束标记。到目前为止,我发现的所有解决方案都导致Kate决定RegEx无效。
任何建议都值得赞赏。
答案 0 :(得分:1)
正则表达式是这项工作的错误工具;在没有适当的解析器的情况下,切勿处理XML,除非可能是在单个文档上进行一次性工作,否则您将在运行并手动检查结果后将代码丢弃。您可能会发现一个可用于一个示例文档的正则表达式,但您永远无法使其在一组精心设计的100个测试文档中正常工作。
使用XSLT即可轻松完成。这是一个具有两个模板规则的样式表:一个默认的“身份模板”规则,用于不变地复制元素,另一个规则用于删除不需要的元素。实际上,在XSLT 3.0中,它变得更加简单:
<xsl:mode on-no-match="shallow-copy"/>
<xsl:template match="officer[title='First VP']"/>