使用正则表达式删除嵌套元素

时间:2013-08-12 19:17:46

标签: c# .net xml regex

我是regex的新手。我想仅从<firstpar>捕获文本部分,或者删除所有<asmbly>及其所有子节点和值。任何人都可以告诉我如何做到这一点。以下是xml fiel的快照。感谢。

<?xml version="1.0" encoding="UTF-8"?>
<firstpar>
    <thumbcred>Sample 1 thumbcred</thumbcred>
    <asmbly>
       <caption>
           <p><work ty="drawing">Two Fabulous Animals</work>Sample 1 <e> sample 1caption </e></p>
        </caption>
        <credit>Paul Miller/AP</credit>
        <asset id="126099" hgt="450" wdth="289" tmstp="24-OCT-08"
            bintype="2" filename="images/sample126099.jpg" source="eb" bighgt="1600"
            bigwdth="1029" bigfilename="botany003.jpg"
            bigdeployfullfilename="/eb-media/99/126099-050-CAD1EF0A.jpg"
        />

        <copyright>Copyright © 1994-2013 Encyclopædia Britannica,  Inc.</copyright>
    </asmbly>

Sample firstpar text <e>Sample e</e> just some
text <sub>sample sub </sub><e>sample e text again</e> more text with sup sub e. 

    </firstpar>

1 个答案:

答案 0 :(得分:2)

不幸的是,正则表达式的一个已知限制是它处理嵌套

您可以而且应该使用您正在使用的任何语言的XML解析器。


如果你有一个非常具体的XML,并且有一个非常具体的目标,那么可以使用正则表达式对它执行一些操作,但是一旦你尝试将你的正则表达式应用到一个非特定的xml片段,它将无法处理它。