C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: XML:属性値が一致した要素の値を変更


(過去ログ 112 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■66406 / inTopicNo.1)  XML:属性値が一致した要素の値を変更
  
□投稿者/ Contrail (1回)-(2013/04/21(Sun) 20:56:39)

分類:[C#] 

C#でのXML操作を勉強していたのですが、
属性の値が一致したタグの値を変更する方法が分からなく、困っています。

<DATA ID="1">foo</DATA>

を、

<DATA ID="1">bar</DATA>

のようにしたいのですがどのようなコードを書けば良いでしょうか?

引用返信 編集キー/
■66408 / inTopicNo.2)  Re[1]: XML:属性値が一致した要素の値を変更
□投稿者/ Hongliang (53回)-(2013/04/22(Mon) 08:41:49)
とりあえず今はどんなコードを書かれていますか?
.NETでXMLを扱うにしても、基本ライブラリだけでXmlReader&XmlWriter, XmlDocument, XDocumentなど複数の手段がありますし。
引用返信 編集キー/
■66420 / inTopicNo.3)  Re[2]: XML:属性値が一致した要素の値を変更
□投稿者/ Contrail (2回)-(2013/04/22(Mon) 16:23:31)
@XmlDocumentのLoadXmlでXmlファイルをを読み込む。
AXmlNodeの変数に指定した属性の値とマッチしたものを代入
BXmlNode.innerTextを変更する。
CXmlDocument.SaveメソッドでSaveする。
というアーキテクチャにしております。
@とCは理解出来るのですが、AとBのコードが全く思い浮かびません。
手も足も出ない状態です。
引用返信 編集キー/
■66421 / inTopicNo.4)  Re[3]: XML:属性値が一致した要素の値を変更
□投稿者/ COCOE (6回)-(2013/04/22(Mon) 17:48:30)
No66420 (Contrail さん) に返信
> @XmlDocumentのLoadXmlでXmlファイルをを読み込む。
> AXmlNodeの変数に指定した属性の値とマッチしたものを代入
> BXmlNode.innerTextを変更する。
> CXmlDocument.SaveメソッドでSaveする。
> というアーキテクチャにしております。
> @とCは理解出来るのですが、AとBのコードが全く思い浮かびません。
> 手も足も出ない状態です。

自身でほとんど答えを書いているような気がしますが。

// ノードを検索して
XmlNodeList nodeList = document.SelectNodes("//DATA[@ID='1']");

// 書き換える
foreach (XmlNode node in nodeList) {
node.InnerText = "bar";
}

ということでしょうか。
引用返信 編集キー/
■66422 / inTopicNo.5)  Re[4]: XML:属性値が一致した要素の値を変更
□投稿者/ Contrail (3回)-(2013/04/22(Mon) 22:02:55)
返信遅くなりました。

SelectedNodesは試していたのですが、XPath式のやり方が間違っていたようでした。

XPath式を直した所、バグ無く、しっかりと動きました。

詳しいサポート有り難うございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -