我正在开发一个包含node(computer)
个对象的插件,其属性如:
String name
String description
String labels
Launcher computerLauncher
...
我可以将node(computer)
对象转换为XML格式的字符串,如:
String xml = jenkins.instance.toXML(node);
这给了我一个字符串:
<name>Computer1</name>
<description>This is a description</description>
<labels>label1 label2</labels>
<launcher>windows.object.launcher.12da1</launcher>
然后我可以走另一条路了:
Node node = jenkins.instance.fromXML(xml);
我没有改变Node中属性的方法,因此我想将其转换为XML,更改som属性,然后再将其作为Node。
我看到两个选项
使用一些String方法处理XML以替换&lt;&gt;之间的所有内容。标签
尝试将XML字符串转换为类似真实对象的内容并以此方式对其进行操作。
不确定什么是最好的方法。
答案 0 :(得分:4)
为什么在已经支持使用Java的DOM(文档对象模型)API的所有内容时发明了新东西?
使用DocumentBuilderFactory获取DocumentBuilder并创建Document实例。有了这个,您可以在toXML方法中创建“节点”对象(请注意您发布的示例实际上是不有效的XML,它缺少根节点),将文档序列化为字符串可能是使用Transformer完成。
使用DOM API,您还可以修改现有元素的属性。
使用DocumentBuilder #parse在DocumentBuilder的帮助下再次从XML字符串解析Document实例。
如果你的DOM操作不是太复杂,那么这应该是一个很好,快速的方法来实现你的目标。
答案 1 :(得分:2)
使用类似DOM的方法对我来说很有意义。但是不要使用DOM本身:有更好的替代方案,如JDOM和XOM,它们有更友好的API。
答案 2 :(得分:0)
最近我不得不操纵大型XML文件(我的软件必须动态创建一些XML文件并从其他一些XML文件中获取输入数据)。为此,我使用了JAXB,它是一个非常简洁的API,可以将XML文件自动编组为Java对象,将Java对象自动编组为XML文件。
但是要做到这一点,我必须创建一个XSD文件来指定我需要读取和写入的XML。
因此,JAXB需要比DOM设置更多的工作,所以如果你的需求很简单,我建议你使用DOM,但是如果你的需求更复杂,那么我会建议使用JAXB。