首页 > 解决方案 > 使用 XMLEvent 解析后保留 CDATA 标记

问题描述

我正在使用XMLEvent并且无法检测到 CDATA 部分。我的意思是,如果我尝试event.asCharacters().isCData()总是错误的。

我必须解析整个 XML 并转义除整个 CDATA 块之外的所有字符。我需要它在 ouput.xml 中与在 input.xml 中完全相同。我需要保留 CDATA 块及其开始和元素标签。

我的输入 xml:

<Document>
    <FIToFIPmtStsRpt>
        <GrpHdr>
            <MsgId>UNKNOWN</MsgId>
            <CreDtTm>UNKNOWN</CreDtTm>
        </GrpHdr>
        <OrgnlGrpInfAndSts>
            <OrgnlMsgId>UNKNOWN</OrgnlMsgId>
            <OrgnlMsgNmId>UNKNOWN</OrgnlMsgNmId>
            <GrpSts>UNKNOWN</GrpSts>
            <StsRsnInf>
                <Rsn>
                    <Prtry>UNKNOWN</Prtry>
                </Rsn>
                <AddtlInf>
                        <![CDATA[<?xml version="1.0" ?><RequestPayload><h:AppHdr xmlns:h="UNKNOWN">]]></AddtlInf>
                <AddtlInf>
                        <![CDATA[<h:Fr><h:FIId><h:FinInstnId><h:BICFI>UNKNOWN</h:BICFI>    </h:FinInstnId>   </h:FIId>  </h:Fr><h:To><]]></AddtlInf>
            </StsRsnInf>
        </OrgnlGrpInfAndSts>
    </FIToFIPmtStsRpt>
</Document>

标签: xmlcdatasaxparser

解决方案


推荐阅读