在c#的文本框中向XML添加属性的最简单方法是什么?

时间:2012-09-05 15:19:16

标签: c# xml xmldocument

我使用以下格式的XML,可以手动或脚本输入到文本框中:

<instructions>
  <step index="1">Do this</step>
  <step index="2">Do that</step>
</instructions>

我希望能够单击按钮向说明元素添加属性,以便所有XML保持不变,但文本框中生成的XML将如下所示:

<instructions iterations="3">
  <step index="1">Do this</step>
  <step index="2">Do that</step>
</instructions>

我能够将XML转换为XmlDocument,但是我在添加元素并将结果返回到文本框时遇到了问题。

任何帮助将不胜感激!

这是我到目前为止基于反馈的代码:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(textBoxInstructions.Text);

var attr = xmlDoc.CreateAttribute("iterations");
attr.InnerText = "3";
string strNewXML = xmlDoc.InnerXml;

textBoxInstructions.Text = strNewXML;

然而,旧的与新的相同。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码

XmlDocument doc = new XmlDocument(); 
doc .LoadXml(textBoxInstructions.Text); 

var attr = doc.CreateAttribute("iterations");
attr.InnerText = "3";
doc .Attributes.Append(attr);

 StringWriter sw = new StringWriter();
 XmlTextWriter xw = new XmlTextWriter(sw);
 doc.WriteTo(xw);
 yourTextBox.Text = sw.ToString();

元素

var xmlElement = doc.CreateElement("...");
xmlElement.SetAttribute("Name","Value");

答案 1 :(得分:0)

尝试在按钮的点击事件上调用以下函数。

 public void populateNewXML()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(textBoxInstructions.Text);
            var attr = xmlDoc.CreateAttribute("iterations");
            attr.InnerText = "3";
            xmlDoc.GetElementsByTagName("instructions")[0].Attributes.Append(attr);
            textBoxInstructions.Text = xmlDoc.InnerXml;
        }