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");
}
私の要件の 2 番目の部分は、私に到達するものです
新しいエントリを追加する必要があります --<features>
< extract >
プログラムで既存のタグの下に新しい< feature >3< /feature >ノードを追加する必要があります
それは、そのノードを分離し、それに子を追加するという行に沿ったものである可能性があります-私はそれについてどうすればよいかわかりません:
org.apache.commons.configuration.HierarchicalConfiguration.NodeNode node = (Node)jxpathCtx.selectNodes("/extract/lastruns/lastrun");
for (Element node : nodes)
{
}
任意のアイデア/ヘルプをいただければ幸いです