4

私はこのようなxmlファイルを持っています。employee.xml

<Employees>
    <Employee>
        <FirstName>myFirstName</FirstName>
        <LastName>myLastName</LastName>
        <Salary>10000</Salary>
    <Employee>
</Employees>

では、既存のXMLファイルに新しいEmployee要素を追加するにはどうすればよいですか?..サンプルコードを高く評価します。

4

5 に答える 5

6

'既存のXMLファイルにノードを書き込むことはできません。既存のXMLファイルをメモリに読み込み、データモデルに追加してから、新しいファイルを書き込むことができます。古いファイルの名前を変更して、古い名前で新しいファイルを書き込むことができます。ただし、XMLファイルを適切に変更する一般的に使用されるJavaユーティリティはありません。

于 2012-06-09T15:47:57.127 に答える
2

xstreamを使用してファイルをオブジェクトとして解析するか、従業員を含むリストを作成して、それを直接xmlに変換してください。

于 2012-06-09T15:36:58.030 に答える
2

このリンクはあなたに役立つと思います。

ここに、読み取り/解析、変更(要素の追加)、および保存(xmlファイルへの再書き込み)の方法のサンプルがあります。

次のサンプルは次の場所にあります:http://www.petefreitag.com/item/445.cfm

読む:

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse("/path/to/file.xml");

変更:

// attributes
Node earth = doc.getFirstChild();
NamedNodeMap earthAttributes = earth.getAttributes();
Attr galaxy = doc.createAttribute("galaxy");
galaxy.setValue("milky way");
earthAttributes.setNamedItem(galaxy);

// nodes
Node canada = doc.createElement("country");
canada.setTextContent("ca");
earth.appendChild(canada);

XMLファイルを書く:

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

//initialize StreamResult with File object to save to file
StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);

String xmlString = result.getWriter().toString();
System.out.println(xmlString);
于 2012-06-09T15:45:56.247 に答える
2

既存のXMLファイルに追加するには、通常、内部データ構造に読み込み、必要なデータを内部形式で追加してから、元のファイルを上書きしてすべてを再度書き出す必要があります。

内部構造は、DOMまたは独自に作成したものにすることができ、読み取りと書き込みの両方の方法が複数あります。

データが適度に小さい場合は、DOMがおそらく最も簡単であり、この関連する質問への回答にいくつかのサンプルコードがあります。

データが大きい場合、DOMは機能しません。考えられるアプローチは、別の関連する質問への回答で説明されているように、SAXを使用して読み取りと書き込みを行うことです(ただし、SAXは従来は読み取りメカニズムにすぎません)。

また、 JAXBまたは(おそらく最高の)StAXを検討することもできます。

于 2012-06-09T16:04:23.457 に答える
1

xmlファイルを作成/編集するにはDOMを使用する必要があります。
非常に簡単です
。ノードを作成して属性を追加するだけです。
DOMを使用してXSLTファイルを作成/編集することもできます。
DOMjavaをグーグルで検索するだけです

于 2012-06-09T15:39:37.877 に答える