0

次のようなJDOM要素があります

例:XML(JDOM要素)

<Details>
<Uniqueno>11111</Uniqueno>
<ROWSET name="Persons">
<ROW num="1">
<Name>60821894</Name>
<Age>938338789</Age>
</ROW>
<ROW num="2">
<Name>60821894</Name>
<Age>938338789</Age>
</ROW>
</ROWSET>
</Details>

私は次のように変換したい:

<Details>
<Uniqueno>11111</Uniqueno>

<ROW num="1">
<Name>60821894</Name>
<Age>938338789</Age>
</ROW>
<ROW num="2">
<Name>60821894</Name>
<Age>938338789</Age>
</ROW>

</Details>

注:ROWSET要素は削除されました

JDOM API を使用して要素を削除したいですか?

4

2 に答える 2

1

すでに何を試しましたか?

  1. Detailsタグ(ドキュメントルート)を検索します
  2. ROWSETタグを見つける
  3. のタグごとに、ノード上のメソッドとこの切り離されたノードをROWタグにROWSET呼び出します。detach()append()Details
  4. ROWSETタグを削除します。

いくつかのサンプルコードを使用して:

// 1
Element details = doc.getRootElement();
// 2
Element rowset = details.getChild("ROWSET");
// 3
for (Element row: rowset.getChildren()) {
    Element r = row.detach();
    details.appendChild(r);
}
// 4
details.removeChild(rowset);

テストされていません。詳細については、 JDOMAPIを確認してください。

于 2012-05-09T11:06:31.387 に答える
1

JDOM 2.0.xを使用している場合は、次のようなことができます。

for (Element rowset : details.getChildren("ROWSET")) {
    rowset.detach();
    for (Content c : rowset.getContent()) {
         details.addContent(c.detach());
    }
}

JDOM 1.xを使用している場合は、同様のことができますが、キャスト数が多くなります。

于 2012-05-09T11:20:15.823 に答える