1

次の形式のXMLがあり、手動またはスクリプトでテキストボックスに入力します。

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

ボタンをクリックして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

このコードで試すことができます

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 に答える
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 に答える