xmlファイルにInnerTextプロパティの書き込み
質問
どのように私は私のxmlファイルのInnerTextプロパティで何かを書くのです。
私はこのようなファイルからparticualarタグを読み取ることができています:
protected void Page_Load(object sender, EventArgs e)
{// this is to read from xml.
if (!Page.IsPostBack)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\configfolder\config.xml");
XmlNodeList portNo = xmlDoc.GetElementsByTagName("AgentConfigRepository");
foreach (XmlNode node in portNo)
{
XmlElement bookElement = (XmlElement)node;
string no = bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText;
TextBox1.Text = no;
}
}
}
今私はOVERRIDE_CONFIG_FILE_NAME
のInnerTextプロパティの値を変更したいですこれは私のxmlファイルがどのように見えるかです:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<AgentConfigRepository>
<SERVER_SHARE_SW_DIR_NAME val="singleVal">AgentSW</SERVER_SHARE_SW_DIR_NAME>
<OVERRIDE_CONFIG_FILE_NAME val="singleVal">override_config.xml</OVERRIDE_CONFIG_FILE_NAME>
<MAINTAIN_AGENT_SW_LEVEL val="singleVal">1.0</MAINTAIN_AGENT_SW_LEVEL>
<MAINTAIN_AGENT_SW_PATCH_LEVEL val="singleVal">0</MAINTAIN_AGENT_SW_PATCH_LEVEL>
</AgentConfigRepository>
私はテキストボックス内の他の値にoverride_config.xml変更します。
任意の提案..感謝
解決
あなたがXDocumentを使用できる場合は、
、それは非常に簡単になります:
XDocument xdoc = XDocument.Load(@"C:\configfolder\config.xml");
xdoc.Root.Element("OVERRIDE_CONFIG_FILE_NAME").SetValue("HelloThere");
xdoc.Save(@"C:\so2.xml");
他のヒント
残念ながら、これは現時点では未テストです(私はそれをテストする場所ではないです)が、あなたの質問のルックスから、あなたは、この行に発見した要素ののinnerTextを変更しようとしている。
bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText;
あなたのテキストボックスにあるものは何でも。一般的に、あなたはこのように文を望んます:
bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText = "new text"
新しいテキストアプリ内のテキストボックスまたは別の変数から文字列または単に(この例のように)ハードコードすることができます。この情報がお役に立てば幸いです。
(ティム・Cが言ったように)
あなただけの他のプロパティのようにInnerTextプロパティを設定することができます。
あなたがこれを行うと、しかし、それだけでXmlDocumentオブジェクトに設定します。ファイルの変更を確認するためには、あなたが戻ってファイルに変更を保存しなければならない。
bookElement.save(ファイル名)
所属していません StackOverflow