gpt4 book ai didi

java - 如何以编程方式从 Java 创建 XML?

转载 作者:行者123 更新时间:2023-11-30 08:18:05 27 4
gpt4 key购买 nike

我正在尝试使用 Java 中的 JAXB 以编程方式创建 XML 元素。这可能吗?我正在阅读此页here对于我可以使用的东西,但到目前为止还没有发现任何东西。

通常你首先定义一个 bean

@XmlRootElement public class MyXML { 
private String name;
public String getName() { return name; }
@XmlElement public void setName(String s) { this.name = s; }
}

并使用如下代码对其进行序列化

public class Serializer { 
static public void main(String[] args) {
MyXML m = new MyXML();
m.setName("Yo");
JAXBContext jaxbContext = JAXBContext.newInstance(MyXML.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(m, new File("MyXML_"+ ".xml"));
}
}

将生成以下 XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<myXML>
<name>Yo</name>
</myXML>

如何对我的 Java 类进行编程,以根据程序中输入的内容创建元素标记名称?例如,在我的示例中,标签元素称为“名称”。我怎样才能在运行时设置它呢?这可以通过泛型或其他方式实现吗?

最佳答案

JAXB 中的 B 代表 Bean,所以不,如果不定义 bean,就无法使用 JAXB。

您只想动态创建 XML,因此请查看 jOOX例如(link to full Gist)

Document document = JOOX.builder().newDocument();
Element root = document.createElement("contacts");
document.appendChild(root);

for (String name : new String[]{"John", "Jessica", "Peter"}) {
$(root).append(
$("contact"
, $("name", name)
, $("active", "true")
)
);
}

关于java - 如何以编程方式从 Java 创建 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29372956/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com