1

我有以下格式的 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;

然而,旧的和新的一样。

4

2 回答 2

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;
        }
于 2012-09-05T20:33:01.810 回答
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");
于 2012-09-05T15:23:38.923 回答