私はパーサーXmlDocument
で作成されたJavaを持っています。Weblogic XmlDocument
この中のタグの内容を自分のデータに置き換えるXMLDocument
か、タグがなければ挿入したいです。
<customdata>
<tag1 />
<tag2>mfkdslmlfkm</tag2>
<location />
<tag3 />
</customdata>
たとえば、場所タグに URL を挿入したいとします。
<location>http://something</location>
それ以外の場合は XML をそのままにしておきます。
現在、私は次を使用していXMLCursor
ます:
XmlObject xmlobj = XmlObject.Factory.parse(a.getCustomData(), options);
XmlCursor xmlcur = xmlobj.newCursor();
while (xmlcur.hasNextToken()) {
boolean found = false;
if (xmlcur.isStart() && "schema-location".equals(xmlcur.getName().toString())) {
xmlcur.setTextValue("http://replaced");
System.out.println("replaced");
found = true;
} else if (xmlcur.isStart() && "customdata".equals(xmlcur.getName().toString())) {
xmlcur.push();
} else if (xmlcur.isEnddoc()) {
if (!found) {
xmlcur.pop();
xmlcur.toEndToken();
xmlcur.insertElementWithText("schema-location", "http://inserted");
System.out.println("inserted");
}
}
xmlcur.toNextToken();
}
にはメソッドがあるため、これを行うための「迅速な」xquery
方法を見つけようとしましたが、それほど簡単ではありませんでした。XmlDocument
execQuery
誰かがこれよりも良い方法を持っていますか? 少し手の込んだようです。