2015-10-06 92 views
0

我正在创建一个将XML映射到Java类型的项目,方法是创建一个集合以将每个Java属性与其相应的XML元素相关联。我的代码与此示例非常相似:使用WSDL提取完整的xml提交到Web服务

private static org.apache.axis.description.TypeDesc typeDesc = 
new org.apache.axis.description.TypeDesc(Login.class, true); 

static { 
    typeDesc.setXmlType(new javax.xml.namespace.QName("http://schemas.actuate.com/actuate11", "Login")); 
    org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc(); 
    elemField.setFieldName("user"); 
    elemField.setXmlName(new javax.xml.namespace.QName("http://schemas.actuate.com/actuate11", "User")); 
    elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string")); 
    elemField.setNillable(false); 
    typeDesc.addFieldDesc(elemField); 
} 

哪一个工作正常。我想知道的是,是否有一种方法可以将由此类处理的整个XML提交实际保存到可单独输出的变量中。

在此先感谢。

+0

是否要将XML存储在变量中以分别输出它?我不明白你在问什么 – acostela

+0

就是这样。我不太确定。我对这类课程感兴趣,并且不确定是获取我需要的信息的最佳方式。 –

+0

您可以做的最好的事情就是使用XML解析器将您的XML映射到Java对象并使用它。 http://www.mkyong.com/tutorials/java-xml-tutorials/如果这是你想要的告诉我,我将添加一个很好的答案和更多的信息 – acostela

回答

1

1.使用@XmlMimeType(“application/octet-stream”)DataHandler处理传入附件的数据。

2.创建一个临时文件来存储xml:File tmpFile = new File(fileName);

  • 呼叫writeStreamToFile(dataHandler.getInputStream(),TMPFILE),以从读出的DataHandler流和写入TMPFILE

    writeStreamToFile(InputStream inputStream, File file) throws IOException { 
        BufferedReader br = null; 
        FileWriter writer = null; 
    
         br = new BufferedReader(new InputStreamReader(inputStream)); 
         writer = new FileWriter(file); 
         String line = null; 
         while((line=br.readLine()) != null) 
         { 
          writer.append(line); 
         } 
        } 
    
  • 4.Close流适当。