XMLの扱いがわからなくて困っています。
javaでXMLのノードを変える、例えば、
jspの画面で要素ノードとテキスト名(要素ノードの内容)を入力して
送信ボタンを押したら、要素ノードでノード検索をしてそのテキスト名を
変更するという処理をする場合、replaceChildメソッドを使うのかと
思ったんですが、replaceChildメソッドだと、「既存のノード」しか
置き換えれなくて文字列が指定できません。
この場合、文字列をノードに変換するメソッドがあるのか、それとも
他に方法があるのか教えていただけないでしょうか。
お願いします。
よろしくお願いします。
No.1
- 回答日時:
Document#createTextNode() で、テキストノードを作って、Node#replaceChild() で置き換えます。
# ということではない?
StringをTextNodeする方法がわからなかったんですが、
おかげで置き換え処理ができました。
テキストノードをつくって、それをNodeにセットして、
最後にルート要素に加えれば良いんですね。
とても助かりました、ありがとうございました。
No.2ベストアンサー
- 回答日時:
回答というよりもアドバイスですが、おそらく
> replaceChildメソッドだと、「既存のノード」しか
> 置き換えれなくて文字列が指定できません。
というところが勘違いの元で、要素の内容のテキストは、その要素ノードの子供にあたるテキストノードとして(DOMでは)表されます。試しに、テキストだけを内容とする要素ノードに対してgetFirstChild()を呼び出してみると、そのテキストノードが得られるはずです。
したがって、No.1の方が回答なさっているようにそのテキストノードを別のテキストノードで置き換えてもよいですし、replaceChildにこだわらなければ、そのテキストノードに対して直接CharacterData#setData()を使ってテキストの文字列だけ書き換えてもよいです。
この手の話は、XML自体の仕様というよりはDOMの仕様なので、参考URLなどでDOMの概念的なことだけでも抑えておくことをお奨めします。
参考URL:http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-2 …
replaceChildはNodeを置き換えるもので、例えばテキストノードを
置き換えたければノードを用意して、そこにテキストノードをセットすれば
できるんですね。
会社にある本は古くて、あまり詳しいことが載っていないんですよね、
こういう基本的なことができないと致命的なので、しっかり調べようと思います。
setDataメソッドも教えていただいて、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- XML マスターノード 1 2023/03/14 10:38
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
昔Winnyってありましたけど、あ...
-
2分探索木の高さを求めるプロ...
-
VB6.0でDOMを使用して...
-
CPUの考え方を教えてください ...
-
C# TreeView 効率良いノード追...
-
グラフ色塗り問題のプログラミ...
-
C#初心者です。HtmlAgilityPack...
-
ツリービューを閉じさせたくない。
-
カウントアップ
-
同じタグ名の項目取得
-
eclipseへのxmlファイル追加
-
XMLで要素が記述された順番に意...
-
xmlファイルが上手にHTMLに変換...
-
東芝のDynabookなのですがアン...
-
XML、XSLTの適応エラー(IEから...
-
Dreamweaver CS3 : シングルク...
-
excelにてweb関数を使い、webデ...
-
ASPで型宣言
-
XMLで特殊文字を扱うにはどうし...
-
特殊記号が勝手にエスケープさ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
同じタグ名の項目取得
-
あるノードリストに、特定の名...
-
ノードとは
-
TreeView の初期表示について
-
ツリービューのノードをダブル...
-
ノード数とは?
-
コンテキストメニュークリック...
-
XML文書の指定した属性値を持つ...
-
C#でtreeviewの指定ノードを選...
-
複数のマックPCによる数値計算...
-
VB6.0ツリービューについて
-
TreeViewの再表示のちらつきを...
-
VB6.0でDOMを使用して...
-
vbsのDOMDocumentで要素のText...
-
TreeViewで複数ノードの選択は...
-
C# TreeView 効率良いノード追...
おすすめ情報