0

我有这个字符串,我需要使用正则表达式将属性 Ccy 获取到 TtlIntrBkSttlmAmt。

你能帮我找到最好的模式吗?

<?xml version = "1.0" encoding = "UTF-8"?>
<Document xmlns = "urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
    <FIToFICstmrCdtTrf>
        <GrpHdr>
            <MsgId>XXXXXXXXXXX</MsgId>
            <CreDtTm>2013-07-23T16:30:14</CreDtTm>
            <NbOfTxs>0</NbOfTxs>
            <TtlIntrBkSttlmAmt Ccy = "EUR">0000.00</TtlIntrBkSttlmAmt>
            <IntrBkSttlmDt>2013-07-24</IntrBkSttlmDt>
            <SttlmInf>
                <SttlmMtd>CLRG</SttlmMtd>
                <SttlmAcct>
                    <Id>
                        <IBAN>XXXXXXXXXXXXXXXX</IBAN>
                    </Id>
                </SttlmAcct>
                <ClrSys>
                    <Prtry>XXXXX</Prtry>
                </ClrSys>
            </SttlmInf>
        </GrpHdr>

谢谢你。

4

2 回答 2

1

我不会使用正则表达式,而是使用 XML 解析器。反正...

(?!= <TtlIntrBkSttlmAmt)Ccy = "[A-Z]+"

应该做的伎俩。编辑 [AZ] 组以满足您的特定需求。

于 2013-07-24T08:43:38.180 回答
1
?? = DocumentBuilderFactory.newInstance().newDocumentBuilder()
         .parse( new InputSource( new StringReader( XMLLine ) ) )
         .getElementsByTagName("TtlIntrBkSttlmAmt")
         .item(0).getAttributes().getNamedItem("Ccy").getNodeValue();
于 2013-07-24T09:27:52.280 回答