org.w3c.dom を使用して同じ XML に値を動的に設定する次のコードを持っている固定形式のない XML があります。
public String generateXML(String[] tags,String[] tagValues,String xmlfilePath){
String strXML = "";
try{
if(tags == null || tagValues == null || xmlfilePath == null){
}else{
File file = new File(xmlfilePath);
if (file.exists()){
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
org.w3c.dom.Document doc = builder.parse(file);
NodeList nodeList = doc.getElementsByTagName("*");
int k =0;
for (int i=0; i<nodeList.getLength(); i++) {
Node node = (Node)nodeList.item(i);
if(node.getNodeName().trim().equalsIgnoreCase(tags[k])){
node.setTextContent(tagValues[k]);
k++;
}
}
DOMImplementationLS domImplementation = (DOMImplementationLS) doc.getImplementation();
LSSerializer lsSerializer = domImplementation.createLSSerializer();
strXML = lsSerializer.writeToString(doc);
}else{
}
}
}catch (Exception e) {
e.printStackTrace();
}
return strXML;
}
しかし、古いバージョンのJDKでは機能しないため、JDOMでも同じことをしたいと考えています。
どのように可能ですか?各例にはタグ名が必要ですが、共通のメソッドを作成したいです。