Javaを使用してXMLノードの値を変更するにはどうすればよいですか?

デビッド

ノードの値をリセットしようとしていますが、何らかの理由で変更が反映されていません。タグを取得しましたXPATHが、指定した値が設定されていません。reqXMLはXMLファイルです

私のコード

public static String changeProductVersion(String reqXML) {

    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        Document document = null;
        DocumentBuilder builder = factory.newDocumentBuilder();
        InputSource source = new InputSource();
        source.setCharacterStream(new StringReader(reqXML));
        document = builder.parse(source);

        XPath xPath = XPathFactory.newInstance().newXPath();
        Element element = (Element) xPath.evaluate(NYPG3Constants.NY_PG3_RL, document, XPathConstants.NODE);

        if(element != null) {
            element.setTextContent("17.1.0");
            System.out.println(element.getTextContent());
        }

    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return reqXML;
}

前もって感謝します

クレイグコールフィールド

あなたのXMLドキュメントがどのように見えるかわからないので、私はいくつかの仮定と変更をしなければなりませんでした。ただし、Elementクラスは拡張さNodeれ、はのsetTextContentメソッドNodeです。更新する必要があるのは最初の子ノードです。これは通常、要素のテキスト値ですが、確認のために検証を追加する必要があります。次に、テキスト値を更新したら、DOMをシリアル化して元の形式に戻す必要があります。

public static String changeProductVersion(String reqXML, String xpathExpression) {

    Document document = null;
    String updatedXML = null;

    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        InputSource is = new InputSource();
        is.setCharacterStream(new StringReader(reqXML));
        document = builder.parse(is);

        XPath xPath = XPathFactory.newInstance().newXPath();
        Element element = (Element) xPath
                .compile(xpathExpression)
                .evaluate(document, XPathConstants.NODE);

        if(element != null) {
            NodeList childNodes = element.getChildNodes();

            // Get the first node which should be the text value.
            // Add some validation to make sure Node == Node.TEXT_NODE.
            Node node = (Node) childNodes.item(0);
            node.setTextContent("17.1.0");
        }

        System.out.println("Updated element value: " + element.getTextContent());

        // Serialise the updated DOM
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(document);
        StreamResult result = new StreamResult(new StringWriter());
        transformer.transform(source, result);

        updatedXML = result.getWriter().toString();

    } catch (Exception ex) {
        ex.printStackTrace();
    }

    System.out.println(updatedXML);
    return updatedXML;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

forループ(python)でxpathを使用してxmlのノード値を変更するにはどうすればよいですか?

分類Dev

Javaを使用してXMLノード値を取得するにはどうすればよいですか?

分類Dev

Javaコードを使用してTextViewの位置を変更するにはどうすればよいですか?

分類Dev

PowerShellを使用してXML要素属性の値を変更するにはどうすればよいですか?

分類Dev

C#でxmlパーサーを使用してxml内のノードのすべての値を抽出するにはどうすればよいですか?

分類Dev

SCNTransformConstraintを使用してノードのZ値を制限するにはどうすればよいですか?

分類Dev

特定のノードの属性値に基づいて他のノードのみを変更するにはどうすればよいですか?

分類Dev

Scalaを使用してxmlノードのxlink:hrefという属性の値を取得するにはどうすればよいですか?

分類Dev

cmdを使用して特定のコード行を変更するにはどうすればよいですか?

分類Dev

Homebrewを使用してインストールした後、ノードのバージョンを変更するにはどうすればよいですか?

分類Dev

特定のXMLノード値を使用して複数のXMLファイルの名前を一括変更するにはどうすればよいですか?

分類Dev

Javaを使用してGoogleのDirectoryAPIを使用してユーザーのパスワードを変更するにはどうすればよいですか?

分類Dev

vbを使用してxmlで動的ノードと要素の値を取得するにはどうすればよいですか?

分類Dev

xmldocumentで子ノードの属性値を使用して親ノードの属性値を取得するにはどうすればよいですか?

分類Dev

JavaでXPathを使用してXMLから特定のノードをフェッチするにはどうすればよいですか?

分類Dev

JavaでXPathを使用してXMLから特定のノードをフェッチするにはどうすればよいですか?

分類Dev

FLWOR XQueryを使用してノード要素名の名前を変更するにはどうすればよいですか?

分類Dev

@StateObjectを使用してブール値を変更するにはどうすればよいですか?

分類Dev

XMLノードを変更するにはどうすればよいですか?

分類Dev

xmlstarletを使用して、要素の値を変更するにはどうすればよいですか

分類Dev

UISliderを使用してビデオのCIFilter値を変更するにはどうすればよいですか?

分類Dev

ポインタを使用してcharの値を変更するにはどうすればよいですか?

分類Dev

JQueryを使用してモデルの値を変更するにはどうすればよいですか?

分類Dev

メソッドを使用してローカル変数の値を変更するにはどうすればよいですか?

分類Dev

XQueryを使用してXML変数の属性値を更新するにはどうすればよいですか?

分類Dev

XSLを使用して文字列値に基づいてxmlノードを取得するにはどうすればよいですか?

分類Dev

Javaコード内のTextView値を変更するにはどうすればよいですか?

分類Dev

XSLTを使用して子ノードを追加するXMLを変換するにはどうすればよいですか?

分類Dev

XSLTを使用してXMLをXMLに変更するにはどうすればよいですか

Related 関連記事

  1. 1

    forループ(python)でxpathを使用してxmlのノード値を変更するにはどうすればよいですか?

  2. 2

    Javaを使用してXMLノード値を取得するにはどうすればよいですか?

  3. 3

    Javaコードを使用してTextViewの位置を変更するにはどうすればよいですか?

  4. 4

    PowerShellを使用してXML要素属性の値を変更するにはどうすればよいですか?

  5. 5

    C#でxmlパーサーを使用してxml内のノードのすべての値を抽出するにはどうすればよいですか?

  6. 6

    SCNTransformConstraintを使用してノードのZ値を制限するにはどうすればよいですか?

  7. 7

    特定のノードの属性値に基づいて他のノードのみを変更するにはどうすればよいですか?

  8. 8

    Scalaを使用してxmlノードのxlink:hrefという属性の値を取得するにはどうすればよいですか?

  9. 9

    cmdを使用して特定のコード行を変更するにはどうすればよいですか?

  10. 10

    Homebrewを使用してインストールした後、ノードのバージョンを変更するにはどうすればよいですか?

  11. 11

    特定のXMLノード値を使用して複数のXMLファイルの名前を一括変更するにはどうすればよいですか?

  12. 12

    Javaを使用してGoogleのDirectoryAPIを使用してユーザーのパスワードを変更するにはどうすればよいですか?

  13. 13

    vbを使用してxmlで動的ノードと要素の値を取得するにはどうすればよいですか?

  14. 14

    xmldocumentで子ノードの属性値を使用して親ノードの属性値を取得するにはどうすればよいですか?

  15. 15

    JavaでXPathを使用してXMLから特定のノードをフェッチするにはどうすればよいですか?

  16. 16

    JavaでXPathを使用してXMLから特定のノードをフェッチするにはどうすればよいですか?

  17. 17

    FLWOR XQueryを使用してノード要素名の名前を変更するにはどうすればよいですか?

  18. 18

    @StateObjectを使用してブール値を変更するにはどうすればよいですか?

  19. 19

    XMLノードを変更するにはどうすればよいですか?

  20. 20

    xmlstarletを使用して、要素の値を変更するにはどうすればよいですか

  21. 21

    UISliderを使用してビデオのCIFilter値を変更するにはどうすればよいですか?

  22. 22

    ポインタを使用してcharの値を変更するにはどうすればよいですか?

  23. 23

    JQueryを使用してモデルの値を変更するにはどうすればよいですか?

  24. 24

    メソッドを使用してローカル変数の値を変更するにはどうすればよいですか?

  25. 25

    XQueryを使用してXML変数の属性値を更新するにはどうすればよいですか?

  26. 26

    XSLを使用して文字列値に基づいてxmlノードを取得するにはどうすればよいですか?

  27. 27

    Javaコード内のTextView値を変更するにはどうすればよいですか?

  28. 28

    XSLTを使用して子ノードを追加するXMLを変換するにはどうすればよいですか?

  29. 29

    XSLTを使用してXMLをXMLに変更するにはどうすればよいですか

ホットタグ

アーカイブ