2016-03-24 3 views
1

私は、gfx-toolkitを使って、gfx形式のグラフデータをファイルではなく出力ストリームとして生成するJava関数を作成しています。xmlフォーマットのストリーム出力GEPHI-TOOLKIT

私はCharArrayWriter、またはにStringWriterを使用する場合 - すべてのXMLタグは特殊記号としてフォーマットされているが、私の出力は次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<gexf xmlns="http://www.gexf.net/1.2draft" version="1.2" xmlns:viz="http://www.gexf.net/1.2draft/viz" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gexf.net/1.2draft http://www.gexf.net/1.2draft/gexf.xsd"> 
    <meta lastmodifieddate="2016-03-24"> 
    <creator>Gephi 0.8.1</creator> 
    <description></description> 
    </meta> 
    <graph defaultedgetype="directed" mode="static"> 
    <nodes> 
     <node id="1" label="n0"> 
     <attvalues></attvalues> 
     <viz:size value="10.0"></viz:size> 
     <viz:position x="-206.8857" y="-18.469671" z="0.0"></viz:position> 
     <viz:color r="153" g="153" b="153"></viz:color> 
     </node> 
     <node id="2" label="n1"> 
     <attvalues></attvalues> 
     <viz:size value="10.0"></viz:size> 
     <viz:position x="-29.136229" y="80.29351" z="0.0"></viz:position> 
     <viz:color r="153" g="153" b="153"></viz:color> 

I出力で、XML-ストリーミングデータを取得するために何を使うべきでしょうか?

現在のコード:

//Export 
ExportController ec = Lookup.getDefault().lookup(ExportController.class); 

ExporterGEXF exp = (ExporterGEXF) ec.getExporter("gexf"); 
CharArrayWriter writer = new CharArrayWriter(); 

ec.exportWriter(writer, exp); 
return writer; 

答えて

0

この回答は参考になりました:harunhow to convert array byte to org.w3c.dom.Document

ありがとう!

作業するコードは次のとおりです。

StringWriter strwriter = new StringWriter(); 



     ec.exportWriter(strwriter, (CharacterExporter)exp); 

     String str = strwriter.getBuffer().toString(); 



     byte[] arr = str.getBytes("UTF-8"); 

      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    factory.setNamespaceAware(true); 
    DocumentBuilder builder = factory.newDocumentBuilder(); 
    return builder.parse(new ByteArrayInputStream(arr)); 
関連する問題