2016-04-04 7 views
0

私のテーブルでは、その列の1つのxml列を維持しています。データはbase64 xml形式です。base64 xml形式のデータを読み取る方法とJavaで値を取得する方法

xml形式のデータを読む方法。

ここに私のコード:

public Object readingSqlResultedRecord(ResultSet result){ 

try { 
Query q="select xml from empdata"; 
String xml = result.getString(1); 
System.out.println("----xml----"+xml); 
}catch (SQLException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
} 

と私のコラムは、XMLとどのように文字列形式で名の値を取得するの読み方

<?xml version="1.0" encoding="UTF-8"?> 
<event id="370e7324-3-85ec-63dac16aacb6"> 
<properties> 
<property enc="BASE64" name="CHEF:description-html" value="ZmhfrtRo"/> 
<property enc="BASE64" name="DAV:name" value="Q2FsZWmnmewqzRlYXI="/> 
</properties> 
</event> 

です。

答えて

1

このコードは、eventのid属性を取得するのに役立ちます。他のノード/属性に対しても同じように動作します。 start tutorial良い:

File fXmlFile = new File("path_to_your_xml"); 
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
Document doc = dBuilder.parse(fXmlFile); 
NodeList nList = doc.getElementsByTagName("event"); 
String id = nList.getAttributes().getNamedItem("id").getNodeValue(); 

、次に復号は、Java 8(java.util.Base64、java.util.Base64.Encoder及びjava.util.Base64.Decoder)に支持されています。あなたがする必要があるのは次のとおりです:

byte[] decode= Base64.getDecoder().decode(id); 
+0

例がbase64形式の場合。 – Sri

+0

私は欲しいです** **値のみ – Sri

0

私の質問が分かっていれば、あなたの列にはBase64値が含まれています。

String xml = result.getString(1); 

変数XMLはBase64 valueを持っている:あなたが 。

String decodeXmlValue = BaseEncoding.base64().decode(xml) 

decodeXmlValueは、XML文字列が含まれている場合、あなたはMashaller java documentationに見て、XML値をアンマーシャラー必要があります。だから、最初のあなたはvalue.Youはこのスニペットを使用する必要がありxml変数をデコードする必要があります。

Base30ライブラリは、dependencyを使用してmavenからプロジェクトに組み込むことができます。プロジェクトでmavenを使用していない場合は、hereからjarをダウンロードしてプロジェクトに含めることができます。

+0

はい私はmavenを使用しています – Sri

+0

これ以上guavaを必要としません。サードパーティのlib。 Base64はJava 8でサポートされています –

+0

@Sri Java 8を使用していますか? –

関連する問題