gpt4 book ai didi

java - 从 Java 中的 xml 元素读取 CDATA 时出现错误

转载 作者:行者123 更新时间:2023-12-02 06:04:46 25 4
gpt4 key购买 nike

在这里挠头有一段时间了......

所以我有一个 Java 应用程序。在此应用程序中,我需要读取 XML 文件,从元素获取字符数据,将其传递到新的 DOM 文档,更改一些元素,然后将新文档转换回 CDATA,将其重新附加到原始消息并发送关闭它。

所以...这是我需要读入的消息,以及读入它的函数:

private static String getCharacterDataFromElement(Node e) {
Node child = e.getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
System.out.println(cd.getBaseURI());
System.out.println(cd.getData());
return cd.getBaseURI();
}
return "error...";
}

这是需要更改的 xml 文件

<RLSOLVE_MSG version="5.0">
<MESSAGE>
<SOURCE_ID>DP01</SOURCE_ID>
<TRANS_NUM>000001</TRANS_NUM>
</MESSAGE>
<POI_MSG type="interaction">
<INTERACTION name="posPrintReceipt">
<RECEIPT type="merchant" format="xml">
<![CDATA[<RECEIPT>
<AUTH_CODE>06130</AUTH_CODE>
<CARD_SCHEME>VISA</CARD_SCHEME>
<CURRENCY_CODE>GBP</CURRENCY_CODE>
<CUSTOMER_PRESENCE>internet</CUSTOMER_PRESENCE>
<FINAL_AMOUNT>1.00</FINAL_AMOUNT>
<MERCHANT_NUMBER>8888888</MERCHANT_NUMBER>
<PAN_NUMBER>454420******0382</PAN_NUMBER>
<PAN_EXPIRY>12/15</PAN_EXPIRY>
<TERMINAL_ID>04176421</TERMINAL_ID>
<TOKEN>454420bbbbbkqrm0382</TOKEN>
<TOTAL_AMOUNT>1.00</TOTAL_AMOUNT>
<TRANSACTION_DATA_SOURCE>keyed</TRANSACTION_DATA_SOURCE>
<TRANSACTION_DATE>14/02/2014</TRANSACTION_DATE>
<TRANSACTION_NUMBER>000001</TRANSACTION_NUMBER>
<TRANSACTION_RESPONSE>06130</TRANSACTION_RESPONSE>
<TRANSACTION_TIME>17:13:17</TRANSACTION_TIME>
<TRANSACTION_TYPE>purchase</TRANSACTION_TYPE>
<VERIFICATION_METHOD>unknown</VERIFICATION_METHOD>
<DUPLICATE>false</DUPLICATE>
</RECEIPT>]]>
</RECEIPT>
</INTERACTION>
</POI_MSG>
</RLSOLVE_MSG>

执行cd.getData()时,返回“\n\t\t\t\t”

有什么想法吗?

最佳答案

仔细查看您的 XML。如果我把它们写在一行中,它实际上是

<RECEIPT type="merchant" format="xml">\n\t\t\t<![CDATA[...]]>\n\t\t\t</RECEIPT>

所以树实际上看起来像这样:

            RECEIPT
/ | \
\n\t\t\t CDATA \n\t\t\t

所以你有三个 child 。由于您只获得第一个 child ,因此您只获得 \n\t\t\t

循环遍历所有子项并连接他们的数据,您应该拥有一切。

关于java - 从 Java 中的 xml 元素读取 CDATA 时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22390653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com