【问题标题】:Extracting Element Value from jPOS ISO从 jPOS ISO 中提取元素值
【发布时间】:2015-05-28 20:19:47
【问题描述】:

我正在尝试从 jPOS 结构化数据中提取 ISO 字符串中的值。字符串如下所示:

221ThirdPartyBillPayment3125
<ThirdPartyBillPayment>
    <BillPaymentRequest>
        <ReferenceId>1111111111</ReferenceId>
    </BillPaymentRequest>
</ThirdPartyBillPayment>

有没有办法获取 ReferenceId 节点的值“1111111111”?

【问题讨论】:

    标签: java jaxb iso jpos


    【解决方案1】:

    样本数据是一个postilion结构化数据字段,它使用一种TLV(标签长度值格式)。

    221ThirdPartyBillPayment3125
    <ThirdPartyBillPayment>
        <BillPaymentRequest>
            <ReferenceId>1111111111</ReferenceId>
        </BillPaymentRequest>
    

    221ThirdPartyBillPayment
    

    这里2是length(21)的长度,21是ThirdPartyBillPayment标签的长度

    3125
        <ThirdPartyBillPayment>
            <BillPaymentRequest>
                <ReferenceId>1111111111</ReferenceId>
            </BillPaymentRequest>
        </ThirdPartyBillPayment>
    

    这里3是length(125)的长度,125是后面数据的长度。

    您可以编写代码来迭代地访问结构化数据中所有可用的 xml,然后解析出其中的 xml 数据。 或者 您可以向 Postilion 询问其结构化数据 iso 字段中使用的 xml 的 dtd/schema,并使用 jaxb 访问数据。

    这将归结为一个名称值对

    ThirdPartyBillPayment= <ThirdPartyBillPayment><BillPaymentRequest<ReferenceId>1111111111</ReferenceId></BillPaymentRequest>
    </ThirdPartyBillPayment>
    

    【讨论】:

      【解决方案2】:

      您在一些固定字段和一些 XML 中混合了一些自定义数据,因此您首先需要从 ISOMsg 中获取整个字段,即:

      String s = m.getString("127.1"); // provided your data comes in field 127.1

      然后找出 XML 从哪里开始(在这种情况下,在 indexOf('&lt;')),然后您需要在 XML 解析器中提供该 XML(您可以使用作为 jPOS 依赖项提供的 jdom),解析 XML 并获取子元素ReferenceId

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-10
        • 1970-01-01
        • 1970-01-01
        • 2011-10-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多