【问题标题】:Merge two xml strings in java在java中合并两个xml字符串
【发布时间】:2013-07-17 14:00:10
【问题描述】:

我正在尝试合并/组合两个 xml 字符串,这些字符串是通过使用 castor 编组/解组将对象解析为 XML 得到的。这是我拥有的两个 XML 字符串:

<?xml version="1.0" encoding="UTF-8"?>
<abc:abcResponse xmlns:abc="http://www.abc.com/schema/abcTransaction">
    <abc:code>0</abc:code>
    <abc:description>blah</abc:description>
</abc:abcResponse>

<?xml version="1.0" encoding="UTF-8"?>
<abc:abcRequest xmlns:abc="http://www.abc.com/schema/abcTransaction">
    <abc:id>99999</abc:id>
    <abc:idString>abc</abc:idString>
</abc:abcRequest>

我希望能够将这两个字符串合并为一个,这样我就可以将其插入到具有 XML 数据类型的数据库 (MSSQL) 列中。我尝试使用此链接java merge two xml strings in java 建议的解决方案,但它似乎无法将其识别为有效的 XML 字符串,因为数据库表中没有插入任何记录,并且我的控制台中出现此错误:

com.microsoft.sqlserver.jdbc.SQLServerException: XML parsing: line 1, character 12,   text/xmldecl not at the beginning of input

如果我将这些字符串中的任何一个单独插入到数据库列中,则可以添加一条新记录。

有人知道如何正确执行此操作吗?非常感谢!

【问题讨论】:

标签: java sql xml


【解决方案1】:

您应该创建类似以下的内容(“abcTransaction”是一个疯狂的猜测)。

<?xml version="1.0" encoding="UTF-8"?>
<abc:abcTransaction xmlns:abc="http://www.abc.com/schema/abcTransaction">
    <abc:abcRequest>
        <abc:id>99999</abc:id>
        <abc:idString>abc</abc:idString>
    </abc:abcRequest>
    <abc:abcResponse>
        <abc:code>0</abc:code>
        <abc:description>blah</abc:description>
    </abc:abcResponse>
</abc:abcTransaction>

甚至可以省略 xmlns 和 "abc:" 部分。

【讨论】:

  • 谢谢,使用这个并且子字符串技巧奏效了,谢谢你们!
猜你喜欢
  • 2011-03-13
  • 2017-08-12
  • 2017-10-25
  • 2015-07-21
  • 1970-01-01
  • 2019-06-29
  • 2022-12-08
  • 2010-10-13
  • 2011-08-06
相关资源
最近更新 更多