C#でXMLデータの更新方法とデータ削除方法について

このQ&Aのポイント
  • C#を使用してXMLデータを更新する方法とデータを削除する方法について教えてください。
  • 具体的には、ID 2のデータのnameとageを置換する方法について詳しく知りたいです。
  • また、ID 2にあるデータを削除する方法も教えていただけると助かります。
回答を見る
  • ベストアンサー

C# XMLデータ 更新について

C# XMLデータ 更新について <?xml version="1.0" encoding="utf-8"?> <Data> <p id="1" name="Aさん age="20" seibetu="男"></p>  <p id="2" name="Bさん" age="30" seibetu="女"></p> </Data> C#でデータ更新ついて ID 2の所に name(名前)とage(年齢)を置換したいですが、 置換前 ID 2 名前 Bさん 年齢 30 置換後 ID 2 名前 Cさん 年齢 25 したいですが、どうしたら出来ますか? 又、ID 2にあるデータを削除したい場合、教えて戴けませんか? すみませんが、どなたか教えてお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#116136
noname#116136
回答No.1

XElement elRoot = XElement.Load("test.xml"); var varPs = from p in elRoot.Elements("p") where (p.Attribute("id").Value == "2") select p; foreach (var p in varPs) { p.SetAttributeValue("name", "C"); p.SetAttributeValue("age", 25); p.Remove(); } elRoot.Save("test.xml");

ndckenji
質問者

お礼

凄く参考になりました。 ありがとうございます。

関連するQ&A

  • C#にてlistView1からXMLファイルへ書込み方法について

    C#にてlistView1からXMLファイルへ書込み方法について 1  2  3  4 5 6 7 8 1 Aさん 50 男 2 Bさん 40 女 3 Cさん 60 男 と書かれていて XMLファイルの中身は、 <?xml version="1.0" encoding="utf-8"?> <Data> <p id="1" name="Aさん" age="50" seibetu="男"></p> </Data> この様なXMLファイルでlistView1にあるデータを全て書込みしたいのですが、どうしたら出来ますか? どなたか申し訳ありませんが、プログラムソース教えて戴けませんか?お願いいたします。

  • xmlデータの編集について

    xmlデータの編集について ******************************************* <?xml version="1.0" encoding="UTF-8" ?> <data> <member_list> <name>メンバー1</name> <age>10歳</age> <email>aaa@a.ne.jp</email> </member_list> <member_list> <name>メンバー2</name> <age>20歳</age> <email>bbb@a.ne.jp</email> </member_list> </data> ***************************************** 上記のような"member.xml"があり、これらをフォームから入力された内容に書き換えたい場合は、どういった処理を行えばいいのでしょうか? if(isset($_POST['add'])){ $xml=simplexml_load_file("member.xml"); $addElm = $xml -> addChild("member_list"); $addElm ->addchild("name",$_POST['names']); $addElm ->addchild("age",$_POST['age']); $addElm ->addchild("email",$_POST['email']); $xml ->asXml("member.xml"); } 追加でしたら上記のような"simplexml"の"addchild"でいけるのですが、書き換える場合の処理がわかりません。 どなたか、ご教授下さいませ。

    • 締切済み
    • PHP
  • 既存のXMLを別のXMLの要素として追加する方法

    JavaでDOMを使用して、既に作成してあるXMLを別のXMLの要素として追加しようと思っているのですが、なかなか上手くいかないので投稿いたしました。 具体的に以下のような既存のXMLファイルがあると仮定して、 <?xml version="1.0" encoding="UTF-8"?> <a> <b>0</b> <c>1</c> <d>2</d> </a> 上記のXMLの親ノード(逆に言えば、このXMLの子ノードとして上記XMLを追加)にあたるXMLは以下のようになっています。 <?xml version="1.0" encoding="UTF-8"?> <A> </A> そして<A>と</A>の間に既存のXMLを追加して、 <?xml version="1.0" encoding="UTF-8"?> <A> <a> <b>0</b> <c>1</c> <d>2</d> </a> </A> のようにしたいと考えています。 よろしくお願いします。

    • ベストアンサー
    • Java
  • ★C#のXML読み込みについて

    以下のXMLをC#(VS2005)で読み込みをしたいのですが、 "DB2", "6"の値を取得するにはどうしたらよいでしょうか? 教えてください。 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <Config> <ConfigKeyValuePair Key="DBType">DB2</ConfigKeyValuePair> <ConfigKeyValuePair Key="Version">6</ConfigKeyValuePair> </Config>

  • jQueryでxmlの異なるタグ要素を取得したい。

    jQueryを最近勉強したての者です。 詳しい方、どうか教えて下さい。 HTMLにxmlのデータを読み込ませようとしています。 概略をお話しすると、 htmlファイルによって、xmlの別々の要素を取得したいのです。 やりたいメソッドは同じです。 別々の要素の中のデータによって、imgの表示/非表示を切り替えたいのです。 問題は、対象となるhtmlファイルが複数あり そのhtmlファイルによって、参照するxmlのタグが異なる事なんです。 xmlは、以下のように<shopdata>をルートノードとし、以下のような感じです。 --------------------- <?xml version="1.0" encoding="utf-8"?> <shopdata> <item> <name1>0</name1> <name2>1</name2> <name3>0</name3> </item> </shopdata> --------------------- <name*>~</name*> の中のデータは、0もしくは1なのですが 0の時はimgを表示 1の時はimgを非表示させようと考えています。 ただ<name1><name2><name3> とタグ名がバラバラなんです。 ※おしりの数字が違うだけで、規則的ではあります。 ちなみにhtmlは複数あって  a.htmlの時は→xmlの<name1>を参照  b.htmlの時は→xmlの<name2>を参照  c.htmlの時は→xmlの<name3>を参照 という感じです。 ※htmlファイル名は特に規則的ではなく、いろいろなファイル名がついています。。。 最初、考えたのは、 htmlのどこかに、id="1"と入れて、idが1の時は、<name1>の要素を取得し、 htmlのどこかに、id="2"と入れて、idが2の時は、<name2>の要素を取得し… っていうことを考えたのですが、それもどのように書いたら良いのかが分からないんです。 そもそも、そういった事は可能なのでしょうか? ちなみのhtmlのbodyタグ自体がテンプレートでできているので、 idをどこかにふるとしたら、head内とかになるのしょうか? それぞれ、ボタンの表示は、 if文を使って、show(),hide()メソッドを使うとは思うのですが… 詳しくコードを教えていただけたら、助かります。 どうか、宜しくお願いいたします。

    • ベストアンサー
    • AJAX
  • perlとXML::Simpleの使い方

    perlを使って、下記のXMLファイルを出力したいです。 <?xml version='1.0' encoding='UTF-8' ?> <member> <No>00001</No> <Product> <ProductSeqNo>0</ProductSeqNo> <ProductName>スマートフォン</ProductName> </Product> <Product> <ProductSeqNo>3</ProductSeqNo> <ProductName>モニタ</ProductName> </Product> <RegistDate>2012/11/29</RegistDate> </member> <Product>タグの部分は、編集情報を設定するため、下記のようにプログラミングしています。 my $p = { member => [ { No => "$id", Product => {}, RegistDate => "$RegistDate" } ] }; my $AddData = { Product => { ProductSeqNo => ["$seqno"], ProductName => ["ProductName"] } }; push(@{$p->{member}}, $AddData); # データを追加 my $x = new XML::Simple; my $xml = $x->XMLout($p, NoAttr=>1, KeepRoot=>1, OutputFile => "$dir/$Details", XMLDecl => "<?xml version='1.0' encoding='UTF-8' ?>"); 上記を動かすと、以下のように出力されます。 <?xml version='1.0' encoding='UTF-8' ?> <member> <No>00001</No> <Product></Product> </member> <member> <Product> <ProductName>ProductName2</ProductName> <ProductSeqNo>1</ProductSeqNo> </Product> </member> 最初のイメージで出力する方法をご存知の方は教えて下さい。

  • actionscript3.0、XMLのリンク集

    actionscript3.0、XMLのリンク集 Flash、XMLともに初心者です。 Flashに外部XMLを読み込んで、更新のしやすいリンク集を制作したいと思います。 調べながら作っているのですが行き詰っております。。 やりたい事としては、 「swf内のテキストエリアに外部から読み込んだXMLを表示させリンクを張る」です。 例として ■A社 http://www.○○○.com ■B社 http://www.△△△.com ■C社 http://www.□□□.com のようなものです。 「■A社」の部分までは表示させることができたのですが、 その後URLを表示させリンクを張るという処理のしかたが分かりません。 あとなぜかXMLには複数行入っているのですがswfには1行目しか表示されません。。 制作したXMLとactionscriptは下記のようなものです。 <?xml version="1.0" encoding="utf-8"?> <data> <list name="■A社" /><url>http://www.○○○.com</url> <list name="■B社" /><url>http://www.△△△.com</url> <list name="■C社" /><url>http://www.□□□.com</url> </data> var xmlURL:URLRequest = new URLRequest("link.xml"); var xmlLoader:URLLoader = new URLLoader(); xmlLoader.load(xmlURL); var myXML:XML = new XML(); xmlLoader.addEventListener(Event.COMPLETE, xmlLoadStart); function xmlLoadStart(e:Event):void { myXML = XML(xmlLoader.data); trace(); link_txt.text = myXML.list[0].@name; } 環境はWin XP、Flash CS3、as3、flash player9です。 何卒お願い致します。

    • ベストアンサー
    • Flash
  • xmlのデータを条件を絞って表示する

    PHPでxmlのデータを条件を絞って表示したいと思っています。 xmlデータをPHPで作成し、結果表示するというのはサンプルを参考に作成できたのですが、条件の絞り方がわからず困っています。 <?php $xmlstr = <<<XML <?xml version="1.0" encoding="UTF-8" standalone='yes'?> <item> <name>牛肉</name> <value>ヒレ</value> <price>500</price> </item> <item> <name>豚肉</name> <value>ヒレ</value> <price>400</price> </item> <item> <name>豚肉</name> <value>もも</value> <price>300</price> </item> <item> <name>鶏肉</name> <value>もも</value> <price>200</price> </item> ・・・・・・ ・・・ XML; ?> というデータを 例えば<value>が(もも)に当てはまるものだけや、 <price>が400以下のものなど、条件を絞って表示したいと思っています。できれば、プルダウンのセレクトメニューを使用して条件をしぼりたいと思っています。 どうすればいいかまったくわかりません。 サンプルを見ながら手を加えるぐらいしかできないレベルです。 よろしければ教えてください。 また、作成したプログラムは携帯でも表示できますでしょうか? セレクトメニューが携帯では表示できないことはしっていますので、チェックボタンなどを使って表示出来ればいいなと思っています。

    • 締切済み
    • PHP
  • C#でプロパティを使わずXMLにデータを保存したい

    C#を使っているのでC・C++のジャンルでいいのか分からないのですがこちらで質問させて下さい。 現在簡単な本の管理をするアプリを作っています。 プロパティをできるだけ使わずにカプセル化して作っていたのですが、肝心のデータを保存する段階で分からなくなりました。 public class Book { private static int _id_gen; private int _id2; private string _isbn; private string _name; public Book(string isbn, string name) { this._isbn = isbn; this._name = name; } } このようにコンストラクタでデータを渡して get プロパティだけあとで追加するようにしています。 こういうデータを保存する際はまとめて保存するのではなくて List<Book> なんかを foreach で回して1件ずつ保存するといいのでしょうか? 読み込む際は1件ずつ読み込んでクラスに設定していくというのが標準的な考え方ですか? 「C# XML 保存」で検索をかけると XmlSerializer でまとめて保存する事例ばかりでちょっと分からなくなってしまいました。 よろしくお願いします。

  • xmlの読込みについて

    <?xml version="1.0" encoding="utf-8" ?> <root>     <学科 name="普通">       <number>001</number>         <人名>A君</人名>       <number>002</number>         <人名>B君</人名>       <number>003</number>         <人名>C君</人名>       <number>004</number>         <人名>D君</人名>     </学科>     <学科 name="経理">       <number>001</number>         <人名>E君</人名>     </学科>     <学科 name="情報">       <number>001</number>         <人名>F君</人名>     </学科> </root> 上記のようなtest.xmlファイルがあり、普通科のD君のnumberをtextboxに出力したいのですが、どういった処理を行えばよろしいでしょうか?

専門家に質問してみよう