0

テンプレートとして使用されるxmlドキュメントがあります

<?xml version="1.0" encoding="UTF-8" standalone="no"?><entry xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><content type="application/xml"><m:properties><d:AccountEnabled>true</d:AccountEnabled><d:DisplayName>SampleAppTestj5</d:DisplayName><d:MailNickname>saTestj5</d:MailNickname><d:Password>Qwerty1234</d:Password><d:UserPrincipalName>saTestj5@identropy.us</d:UserPrincipalName></m:properties></content></entry>

payLoadXML.xml に上記のコンテンツがあるこのコードを使用して、Java で呼び出しています。

"InputStream is = getClass().getClassLoader().getResourceAsStream("/payLoadXML.xml");"

今、タグの値を編集しようとしています。たとえば、「saTestj5」から「saTestj6」に変更し、この xml 全体を変換して xml に保存します。どうすればこれを達成できるか教えてもらえますか?これは「ノード」を使用して実行できると言われましたが、可能ですか?

4

2 に答える 2

0
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = null;
        docBuilder = docFactory.newDocumentBuilder();

        Document doc = null;
        InputStream is = getClass().getClassLoader().getResourceAsStream("/payLoadXML.xml");
        doc = docBuilder.parse(is);

        Node staff = doc.getElementsByTagName("m:properties").item(0);

        Text givenNameValue = doc.createTextNode("abc");
        Element givenName = doc.createElement("d:GivenName");
        givenName.appendChild(givenNameValue);
       staff.appendChild(givenName);
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = null;
        transformer = transformerFactory.newTransformer();

        DOMSource source = new DOMSource(doc);
        StringWriter writer = new StringWriter();
        StreamResult result = new StreamResult(writer);

        transformer.transform(source, result);
于 2013-02-25T19:12:23.050 に答える
0

jaxb または sax パーサーを使用して getter メソッドを使用してオブジェクトに変換し、オブジェクトを変更して xml に変換し直します

これを試してください

于 2013-02-25T14:48:55.673 に答える