我使用以下格式的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;
然而,旧的与新的相同。
答案 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;
}