2012-01-25 14 views
0

私は、一連のウェブサイトリンクを持つプログラムを持っています。これらのリンクはいつでも変更できるので、ランタイム中にリンクを変更してからXMLファイルに保存することができます。プログラムを閉じてもう一度開くと、XMLファイルから設定をロードできます。私は書きたい情報をテキストファイルに書き込むことができましたが、特定のリンクと名前を置き換える方法や、その特定のリンクと名前を呼び出してボタンにリンクする方法がわかりません。以下のコードは、XML文書がまだ存在しない場合は、実際にXML文書に書き込むことです。だから私はまだ個々のリンクを変更するフォームを設計したり書いたりしていません。TextboxからXML&XML to Textbox

private void button1_Click(object sender, EventArgs e) 
{ 
    { 
     XmlTextWriter writer = new XmlTextWriter("C:\\product.xml", System.Text.Encoding.UTF8); 
     writer.WriteStartDocument(true); 
     writer.Formatting = Formatting.Indented; 
     writer.Indentation = 2; 
     writer.WriteStartElement("Table"); 
     createNode("1", "Product 1", "1000", writer); 
     writer.WriteEndElement(); 
     writer.WriteEndDocument(); 
     writer.Close(); 
     MessageBox.Show("XML File created ! "); 
    } 
} 

private void createNode(string Buttons, string Workshop_name, string URL, XmlTextWriter writer) 
{ 
    writer.WriteStartElement("Buttons"); 
    writer.WriteStartElement("ButtonID"); 
    writer.WriteString(Buttons); 
    writer.WriteEndElement(); 
    writer.WriteStartElement("Workshop_name"); 
    writer.WriteString(Workshop_name); 
    writer.WriteEndElement(); 
    writer.WriteStartElement("URL"); 
    writer.WriteString(URL); 
    writer.WriteEndElement(); 
    writer.WriteEndElement(); 
} 

私は明確になりたい。私は、XML文書から1つのノードを読み込み、ボタンをテキストボックスにリンクできるテキストボックスに書きたいと思っています。電子メールアドレスを持つ多くのノードが存在するので、他のノードと一意にする必要があるノードを作成する方法を知りたい。

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Table> 
    <Buttons> 
    <ButtonID>1</ButtonID> 
    <Workshop_name>Cerner Training</Workshop_name> 
    <URL>www.mlecerner.co.uk</URL> 
    </Buttons> 
    <Buttons> 
    <ButtonID>2</ButtonID> 
    <Workshop_name>Cerner Doctors</Workshop_name> 
    <URL>www.cernerdoctors.co.uk</URL> 
    </Buttons> 
</Table> 
+0

あなたが直接 'XmlTextWriter'を使用しないでください、あなたは' using'ブロックで囲む必要があります: '(のXmlWriterライター=のXmlWriterを使用して.Create( "C:\\ product.xml")){...} ' –

答えて

0

読み込み/書き込みXMLにここに私の例を参照してください:https://stackoverflow.com/a/8899367/353147

+0

ありがとうございました。私はそれを実行するが、邪魔になる。 "ReplaceWith"にエラーが表示されます。私は参照を欠いていますか? 'System.Xml.Linq.XAttribute'に 'ReplaceWith'の定義がなく、 'System.Xml.Linq.XAttribute'タイプの最初の引数を受け入れる拡張メソッド 'ReplaceWith'が見つかりませんでした(usingディレクティブがありませんか?またはアセンブリの参照? – Marshal

+0

良いキャッチ、私は自分自身を書いていたと思います。 –