2012-02-07 21 views
8

まずはC#です。 NHSの小規模なグループのためのインターネットダッシュボードを作成しています。 以下は、xmlファイルのinnertextを変更する必要があるxmlファイルの例です。私は "Workshop1"のような特定の要素を置き換える必要があります。私たちはいくつかのワークショップを開催しているので、XML文書のすべての情報をこの1ビットのコードに置き換えるので、一般的な作家を使う余裕はありません。Xmlノード/要素のinnertextの置換

<?xml version="1.0" ?> 
    <buttons> 
     <workshop1>hello</workshop1> 
     <url1>www.google.co.uk</url1> 

は、私はあなたが名前を変更し、ワークショップのURLを追加することができ、特定のワークショップを選択するために、スイッチケースを使用して文書全体を置き換えます以下のコードを使用しています。

public void XMLW() 
    { 
     XmlTextReader reader = new XmlTextReader("C:\\myXmFile.xml"); 
     XmlDocument doc = new XmlDocument(); 

     switch (comboBox1.Text) 

     { 
      case "button1": 


       doc.Load(reader); //Assuming reader is your XmlReader 
       doc.SelectSingleNode("buttons/workshop1").InnerText = textBox1.Text; 
       reader.Close(); 
       doc.Save(@"C:\myXmFile.xml"); 
       break; 


     } 


    } 

だから、私は私のC#のプログラムは、要素「Workshop1」を見つけるテキストボックスおよびテキストボックスからテキストをInnerTextプロパティを置き換え、XML文書を検索したい明確にします。文書全体を1つのノードに置き換えることなく保存することができます。探してくれてありがとう。あなたはこの

XmlDocument doc = new XmlDocument(); 
doc.Load(reader); //Assuming reader is your XmlReader 
doc.SelectSingleNode("buttons/workshop1").InnerText = "new text"; 

を行うことができますXmlDocumentとXPathを使用して

+2

あなたは 'XDocument'または少なくとも' XmlDocument' APIを使用していない理由はありますか? * huge * XMLファイルを処理する必要がある場合は、通常は 'XmlReader' /' XmlWriter'のみを使用します。 –

+0

さて、私はC#のちょっとした初心者です。だから一般的なプログラムを実行するために私は一緒にコードをバッシングしていると私はそれがより効率的にするためにコードを変更することができます私はそれが動作することがわかります。少なくともこのようにして、私は物事を行う醜い方法と清潔な方法の違いを学び、両方の利点を理解することができます。しかし、私はXMLReader/XMLWriterを使用するようにあなたの指導に感謝します。 – Marshal

+0

私のアドバイスは、 'XmlReader' /' XmlWriter'を使用しないことでした... –

答えて

10

また、ファイルを保存するためにdoc.Saveを使用することができます。

XmlDocumentについては、MSDNをご覧ください。文書を保存するには

EDIT

が、これはあなたを助け、この

doc.Save(@"C:\myXmFile.xml"); //This will save the changes to the file. 

希望を行います。

+0

私はそれが動作すると思います。唯一の問題は、文書を保存することができないことです。私は "doc.Save;"を使用しています。ただし、エラーが発生しています** "割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクト式のみをステートメントとして使用できます。" **これはXMLWriterを使用しないためですか?または?私はこの1つのプログラムに長年取り組んできましたが、おそらく私はばかだと思っています。あなたが上を見れば、あなたはそれが好きであると見ることができます。 – Marshal

+0

更新された回答を確認してください。 –

+0

これが機能していることを示すために、上記のコードを編集しました。 Amar Palsapureに感謝します。 – Marshal

関連する問題