java 关于 javax.xml.bind.Unmarshaller 根据xml反射对象的的问题

作者&投稿:营终 (若有异议请与网页底部的电邮联系)
java通过反射技术将读取的xml节点内容转为对象,子节点对应对象的属性,如果所给的xml的子节点少于定义的~

可以通过元素中的getText方法获取到节点的内容。
举例:
SAXReader sax = new SAXReader();
Document document = sax.read(reader);//reader为定义的一个字符串,可以转换为xml
Element root = document.getRootElement();//获取到根节点元素String str = root .getText()//获取到节点的内容
用到的是dom4j-1.6.1.jar,需要引入的包是:
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
备注:如果是多个子节点可以通过”Element xx=root .element("code")“获取到子节点的元素,前提是需要知道子节点的名称。

查找jaxb-api-xxxx.jar
Java9 里面没有默认添加,需要自己指定
java --add-modules java.xml.bind
apache-tomcat-9.0.1\bin\catalina.bat 添加:

set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-modules=java.xml.bind

你的Bean加上注解,@XmlRootElement,这就不会报错了。
这个注解加在public class 上面。

你的代码主是这样没有 XML 文件和 XSD 直接用字符串的么?

XML 验证过没有?先在 Eclipse 这些工具中右击 Validate 验证一下,先确保这个 XML 与它所使用的 XSD 文件格式是匹配的,比如 XSD 里面说是 baseResidentsInfo 你就不能写成 BaseResidentsInfo,XML 是严格区分大小写的。而这些会被 JAXB 编译器写入代码中,未知的标签就会报告错误停止工作。

另外名字空间也必须匹配。


舞钢市18450969272: java中的javax.xml.parsers.DocumentBuilder -
壹绍丙克: 呵呵,你的问题我来答,先看API的定义,我加了点小注释: 使其从 XML 文档获取 DOM 文档实例.使用此类,应用程序员可以从 XML 获取一个 Document.//(这句就是他的作用) 此类的实例可以从 DocumentBuilderFactory....

舞钢市18450969272: 在java中怎么把xml文件中的数据 -
壹绍丙克: xml是一种可扩展的标记语言,可以用来存储和传输数据.在java里面我们可以调用相关的方法来访问到它.package com.bikeqx.test; import java.io.IOException; import javax.xml.parsers.*; import org.w3c.dom.*; import org.xml.sax.SAXException; ...

舞钢市18450969272: 如何用java生成一个xml文件
壹绍丙克: //首先下载并添加dom4j.jar包(自己下载) import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; import javax.swing.JOptionPane; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; /** * @...

舞钢市18450969272: Java中object和xml互相转换 -
壹绍丙克: import java.beans.XMLDecoder; import java.beans.XMLEncoder; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io....

舞钢市18450969272: java,如何读取xml文件? -
壹绍丙克: 用dom4j的xpath方式来解析,XPATH为: /cities/province/item[text()='你的城市']/parent::province/@name 下面的代码需要用到:dom4j,jaxen等jar包. import java.io.File; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io....

舞钢市18450969272: Java中如何读取xml文件?
壹绍丙克: 大概有4种方法,这里我用了一个简单例子来说明问题. xml文件: Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> <NO>A1234</NO> <ADDR>河南省郑州市</ADDR> </VALUE> <VALUE> <NO>B1234</NO> ...

舞钢市18450969272: java生成xml -
壹绍丙克: package com.wasw100;import java.io.File;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml....

舞钢市18450969272: 如何用java解析xml文档,然后将数据存到数据库里 -
壹绍丙克: package test11; import javax.xml.parsers.*; import org.w3c.dom.*; import java.io.*; public class XMLUtil { //该方法用于从XML配置文件中提取具体类类名,并返回一个实例对象 public static Object getBean() { try { //创建文档对象 ...

舞钢市18450969272: javax.xml.rpc和javax.wsdl分别属于哪个jar包 -
壹绍丙克: javax.xml.rpc属于jaxrpc.jar包;javax.wsdl属于wsdl4j-1.5.1.jar包.一个 JAR[2] 文件可以用于 □ 用于发布和使用类库 □ 作为应用程序和扩展的构建单元 □ 作为组件、applet 或者插件程序的部署单位 □ 用于打包与组件相关联的辅助资源 JAR 文件格式...

舞钢市18450969272: java 读取一个路径下的所有 xml类型的文件? -
壹绍丙克: 实现思路就是先获取到xml文件的上层路径,之后获取到此路径下的所有文件,之后判断后缀为”.xml“的输出即可.rivate Listpublic static void main(String[] args) { ReadFolder rf = new ReadFolder(); Listfor(int i = 0; i if(list.get(i).endWith(".xml")) //判断后缀内容是xml的输出此内容 System.out.println(list.get(i)); }}

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网