在java中基于XPath创建XML节点

在java中基于XPath创建XML节点,java,dom,xpath,Java,Dom,Xpath,我有一个配置文件,可能包含,也可能不包含某个元素,该元素的XPath为: /configuration/server/address 当我编写配置时,如果节点不存在,我必须创建它 Node n = (Node)xp.evaluate("/configuration/server/address", configDocument, XPathConstants.NODE); 但是,毫不奇怪,如果实际文件中不存在该节点,则该节点为null 问题 嗯。我的想法是使用类似文件的东西:我可以定义一个不

我有一个配置文件,可能包含,也可能不包含某个元素,该元素的XPath为:

/configuration/server/address
当我编写配置时,如果节点不存在,我必须创建它

Node n = (Node)xp.evaluate("/configuration/server/address", configDocument, XPathConstants.NODE);
但是,毫不奇怪,如果实际文件中不存在该节点,则该节点为null

问题

嗯。我的想法是使用类似文件的东西:我可以定义一个不存在的路径:

File f = new File("myInexistentDir/myInexistentSubdir");
然后,我调用f.mkdirs()并在现实世界中复制路径。 XPath的java实现是否可行

可能的反对意见。显然,并非所有XPath表达式都是“可创建的节点”。 在哪里创建“//anywhere”元素?
我想说“//anywhere”表达式在严格意义上不是“路径”,它更类似于查询

我从未见过这样的情况。快速浏览一些可选解析器的Javadoc也没有发现任何东西。从XPath引擎返回一个
节点
对象,该引擎允许插入。这可能会让你接近你需要的东西。

我从来没有见过这样的东西。快速浏览一些可选解析器的Javadoc也没有发现任何东西。从XPath引擎返回一个
节点
对象,该引擎允许插入。这可能会使您更接近所需的内容。

另一个区别是,XML文件可以在同一级别上具有多个同名节点。这在文件系统中是不可能的。因此,一个文件的路径总是指向一个特定的东西。xpath可以在整个XML文档的多个级别上引用多个节点。虽然可能,但通用解决方案将是一种广泛的解决方案-无论如何,您需要这些东西做什么?我从未见过这样的事情,但我将用非常好的主意实现它!另一个区别是,一个XML文件可以在同一级别上有多个同名节点。这在文件系统中是不可能的。因此,一个文件的路径总是指向一个特定的东西。xpath可以在整个XML文档的多个级别上引用多个节点。虽然可能,但通用解决方案将是一种广泛的解决方案-无论如何,您需要这些东西做什么?我从未见过这样的事情,但我将用非常好的主意实现它!