我正在使用 jxpath 打印所有节点并将子节点添加到此 xml 中的功能标记
<extracts>
<extract>
<id>1</id>
<features>
<feature>1</feature>
<feature>2</feature>
</extract>
</extracts>
这就是我的代码的样子(至少可以工作的部分 - 它打印一些信息):
import org.apache.commons.jxpath.ri.model.*;
import org.apache.commons.jxpath.JXPathContext;
import org.apache.commons.jxpath.Pointer;
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
ByteArrayInputStream bais = new ByteArrayInputStream(getBytesFromFile(file));
Document doc = builder.parse(bais);
JXPathContext jxpathCtx = JXPathContext.newContext(doc.getDocumentElement());
jxpathCtx.setLenient(true);
我要求的第一部分——打印这些节点——是微不足道的:
for (Iterator iter2 = jxpathCtx.iterate("/extract/*"); iter2.hasNext();)
{
System.out.println("\n Value is : " + iter2.next().toString() +"\n");
}
我要求的第二部分是我得到了什么
我需要添加一个新条目 --a new < feature >3</feature >节点 UNDER UNDER UNDER UNDER<features>
下< extract >
programatically
它可能类似于隔离该节点 - 然后向它添加一个子节点 - 我只是不知道如何去做:
org.apache.commons.configuration.HierarchicalConfiguration.NodeNode node = (Node)jxpathCtx.selectNodes("/extract/lastruns/lastrun");
for (Element node : nodes)
{
}
任何想法/帮助将不胜感激