2013-07-17 37 views
-1

我正在试图合并/合并两个xml字符串,我使用castor编组/解组将xml字符串解析为XML。下面是我有两个XML字符串:合并java中的两个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> 

我希望能够到这两个字符串合并成一个,这样我可以插入该到我的数据库(MSSQL)的列,具有XML数据类型。我尝试使用此链接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 

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

任何人有一个好主意,如何正确地做到这一点?非常感谢!

+0

你试过xslt吗? – dharam

+0

可能重复的[java在java中合并两个xml字符串](http://stackoverflow.com/questions/3208241/java-merge-two-xml-strings-in-java) –

+0

这是不是重复的,因为做了什么有没有适用于我的问题 – user974047

回答

4

您应该创建类似于下面的内容(“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:”部分。

+0

谢谢,使用这个和子字符串技巧工作,谢谢你们! – user974047