我有以下XML,需要将其转换为java对象。
<tests>
<test-data>
<title>BookTitle</title>
<book>BookName</book>
<count>64018</count>
<test-data>
<title>Book title1</title>
<book>Book Name1</book>
<count>5</count>
</test-data>
<test-data>
<title>Book title2</title>
<book>Book Name3</book>
<count>5</count>
</test-data>
<test-data>
<title>Book title3</title>
<book>Book Name3</book>
<count>4</count>
</test-data>
</test-data>
</tests>
我不确定当我使用JAXB转换它时,我的pojo将是什么。
根据我的理解,我创建了以下POJO:
public class Tests {
TestData testData;
public TestData getTestData() {
return testData;
}
public void setTestData(TestData testData) {
this.testData = testData;
}
}
public class TestData {
String title;
String book;
String count;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getBook() {
return book;
}
public void setBook(String book) {
this.book = book;
}
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
}
请帮帮我。提前感谢。
测试
在测试
类中,我们将添加一个@XmlRootElement
注释。这样做会让JAXB实现知道,当文档以这个元素开头时,它应该实例化这个类。JAXB是例外配置,这意味着您只需要在映射与默认映射不同的地方添加注释。由于testData
属性与默认映射不同,我们将使用@xmlement
注释。您可能会发现以下教程很有帮助:http://wiki.eclipse.org/EclipseLink/Examples/MOXy/GettingStarted
package forum11221136;
import javax.xml.bind.annotation.*;
@XmlRootElement
public class Tests {
TestData testData;
@XmlElement(name="test-data")
public TestData getTestData() {
return testData;
}
public void setTestData(TestData testData) {
this.testData = testData;
}
}
测试数据
在这个类中,我使用了@XmlType
注释来指定元素的排序顺序。我添加了一个似乎丢失的testData
属性。我还使用了一个@XmlElement
注释,其原因与测试
类相同。
package forum11221136;
import java.util.List;
import javax.xml.bind.annotation.*;
@XmlType(propOrder={"title", "book", "count", "testData"})
public class TestData {
String title;
String book;
String count;
List<TestData> testData;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getBook() {
return book;
}
public void setBook(String book) {
this.book = book;
}
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
@XmlElement(name="test-data")
public List<TestData> getTestData() {
return testData;
}
public void setTestData(List<TestData> testData) {
this.testData = testData;
}
}
演示
下面是一个如何使用JAXB API读取(解组)XML并填充域模型,然后将结果写(封送)回XML的示例。
package forum11221136;
import java.io.File;
import javax.xml.bind.*;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Tests.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
File xml = new File("src/forum11221136/input.xml");
Tests tests = (Tests) unmarshaller.unmarshal(xml);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(tests, System.out);
}
}
我想使用XML有效载荷,比如: 另一种有效载荷是: 所以我想为创建一个类,其中包含和一个,我可以在其中放置不同类型的对象,所以我尝试了多种类型的对象一个带有的类,但它不允许我具有相同的名称 在这种情况下我能做什么?提前感谢。
我试图将我下面的xml转换为java对象。 这是我的xml: 我需要在"提供者组织"下获取"name"的值。下面是我Java课。 诊所ocument.java 记录目标。JAVA 病人ole.java 供应商组织。JAVA XMLFileParserSAXUtility.java 我得到的结果是 如果我尝试打印syso(临床文件); 结果是临床文档[recordTarget=null] 请帮帮我!
我有一个类,它有一个包含的列表。在我的应用程序中,我在中设置细节,然后添加到的中,然后使用将转换为。 下面代码行的1个illegalAnnotationExc一定类有两个相同名称的属性trainingList
我怎么能转换java对象到xml?我试图转换一个传入的java对象到xml在Spring集成与转换器豆。有没有其他的方法比编组在Jaxb?喜欢使用@TypeConver。或实现转换器类。
我正在尝试使用JAXB从对象构建XML。 但是我错过了一些东西,因为我得到了一个例外: javax.xml.bind.MarshalExc0019-具有链接异常:[com.sun.istack.internal.SAXException2:类雇员及其任何超级类在此上下文中都是已知的。javax.xml.bind.JAXBExc0019:类雇员及其任何超级类在此上下文中都是已知的。]
问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 将XML转换为Java对象的最佳方法是什么? 我不希望类似表示,但是想从XML中提取某些数据并填充Java对象。我看过XStream,但并不真正喜欢整个“调低