使用 Java 代码将文本插入由 XPath 表达式定位的 XML 节点

Insert text into an XML node located by an XPath expression with Java code

我有一个这样的 xml 文档:

<?xml version="1.0" encoding="UTF-8"?>
<body>
<request>
<location>
  <address />
</location>
</request> 
</body>

我的目标是将值 "My Address" 插入此文档,以便:

<?xml version="1.0" encoding="UTF-8"?>
<body>
<request>
<location>
  <address>
    My Address
  </address>
</location>
</request> 
</body>

我必须在 java class 中实现这个目标,它必须创建这个文档,从 XML 文件中读取它 (ok) 并且我有一个 XPath 表达式 (/request/location/address) 指示我将文本放在哪里 ("My address")。如何实现允许我从 xml 和 XPath 字符串开始将文本插入节点的 Java class?这个 java class 必须是通用的,不绑定到特定的 XML 结构(这就是为什么我使用 XPath 表达式而不是将 XMl 结构放入 class).我希望我的问题很清楚。

这是执行此操作的代码vtd-xml...

import com.ximpleware.*;

public class insertTextNode {
    public static void main(String[] s) throws VTDException, Exception {
        VTDGen vg = new VTDGen();
        AutoPilot ap = new AutoPilot();
        XMLModifier xm = new XMLModifier();
        if (vg.parseFile("input.xml", true)) {
            VTDNav vn = vg.getNav();
            ap.bind(vn);
            xm.bind(vn);
            ap.selectXPath("/body/request/location/address");
            int i=0;
            while((i=ap.evalXPath())!=-1){
                xm.insertAfterHead("myAddress");
            }
            xm.output("output.xml");
        }
    }
}