String.replace(regex,string)用于替换XML中的内容

时间:2017-08-22 14:18:29

标签: java xml string

我有一个字符串形式的XML。

<Message>   
 <Header>
    <MsgId></MsgId>
    <ClientAppSeq>CNB110833</ClientAppSeq>
    <ClientAppGrpSeq>CNB</ClientAppGrpSeq>
    <Status>
        <System>1111111111</System>
        <StatusCode>2222222222</StatusCode>
        <Severity>3333333333</Severity>
        <StatusDesc>4444444444</StatusDesc>
    </Status>
</Header>
<TrxSvcRq>
    <Tx123Rq>
        <ContentHeader>
            <Filler1></Filler1>
            <MessageType></MessageType>
            <MessageLength></MessageLength>
            <CycleNumber>170523</CycleNumber>
            <MessageNumber>200257</MessageNumber>
        </ContentHeader>
        <TitleHeader>
             <MessageNumber>abcdefg</Message>
             <Title>HIHIHIHI</Title>
        </TitleHeader>
    </Tx123Rq>
 </TrxSvcRq>
</Message>

我想仅在

下替换20057
<ContentHeader></ContentHeader>

我该怎么做?

有人能帮助我吗?

谢谢

3 个答案:

答案 0 :(得分:0)

这应该有效:

str = str.replace("<MessageNumber>200257</MessageNumber>", "<MessageNumber>123456</MessageNumber>")

答案 1 :(得分:0)

你只需要对字符串进行简单的替换:

String xml = "<Message>...</Message>"
xml = xml.replace("Number>200257</Message", "Number>123456</Message")

你不需要将整个应用程序纳入

答案 2 :(得分:0)

xml = xml.replaceFirst("(?<=\<MessageNumber>)\d*", newValue);

将使用您想要赋予它的任何newValue替换元素中存在的任何值(假设newValue和xml都是String对象)。