Java String替换具有某些特定单词的Xml标记

时间:2013-09-16 11:02:11

标签: java xml regex string replace

我需要删除以“section”结尾的字符串中的XML标记。例如,在下面的XML字符串

<OldSection>
    <sectionTitle>Sample Title</sectionTitle>
    <label> Hello Label </label>
    <heading>Hi </heading>
    <NewSection>
        <section>
            <InteractionSection>
                <sectionTitle>Section Title</sectionTitle>
                <label> Hello </label>
                <heading>Hi </heading>
                <para>
                    ...
                    ...
                </para>
            </InteractionSection>
        <section>
    </NewSection>
</OldSection>

我想删除以<OldSection>, </OldSection> ,<NewSection></NewSection>, <InteractionSection>, </InteractionSection>等部分结尾的标签。应该删除标签,而不是标签中的内容。

我尝试了以下代码,但没有工作..

stringformat sf = new stringformat();

// REturns the xml string given as input 
String s = sf.getString(); 
String f = s; 

f = f.replaceAll("\\<*Section[^>].*?\\>", "");

请提出任何建议。

1 个答案:

答案 0 :(得分:1)

不要尝试使用正则表达式使用字符串。我建议你做编组和解组。将您的XML解组为一个类。使用Apache Commons的BeanUtils将必需的类内容复制到另一个类中,然后将其编组回XML。