2011-01-07 6 views
1

私はこれがあります。要素をXMLドキュメントに追加する方法は?

<dockmenu>  
<photo image="images/4runner-sr5.jpg" url="www.example.com" target="_blank"><![CDATA[4Runner]]></photo>  
<photo image="images/4runner.jpg" url="www.example.com" target="_blank"><![CDATA[4Runner<br>Dock Beautiful]]></photo>  
</dockmenu> 

をそして私は ので、それはこのようになります使用してさまざまな情報(C#とASP.net)を使用してXMLに1以上の要素を追加する必要があります。

<dockmenu> 
<photo image="images/4runner-sr5.jpg" url="www.example.com" target="_blank"><![CDATA[4Runner]]></photo>  
<photo image="images/4runner.jpg" url="www.example.com" target="_blank"><![CDATA[4Runner<br>Dock Beautiful]]></photo>  
<photo image="images/new.jpg" url="www.new.com" target="_blank"><![CDATA[New]]></photo>  
</dockmenu> 

これはどうすればいいですか? XMLへ

+0

はあなたの前と後に、少し質問を明確にする必要がまったく同じとされているどちらも正しく形成され、これはC#やASP.NETとしなければならないどのようなXML – MrEyes

+0

? –

答えて

2

LINQ:

var text = @"<dockmenu>  
<photo image=""images/4runner-sr5.jpg"" url=""www.example.com"" target=""_blank""><![CDATA[4Runner]]></photo>  
<photo image=""images/4runner.jpg"" url=""www.example.com"" target=""_blank""><![CDATA[4Runner<br>Dock Beautiful]]></photo>  
</dockmenu>"; 
var dockMenu= XElement.Parse(text); 
var photo = new XElement("photo"); 
photo.SetAttributeValue("image", "images/new.jpg"); 
photo.SetAttributeValue("url", "www.new.com"); 
photo.SetAttributeValue("target", "_blank"); 
photo.Add(new XCData("New")); 
dockMenu.Add(photo); 
var newText = dockMenu.ToString(); 

または、より簡潔なバージョンのために:

​​
0

ます。また、直接DOMにノードを追加することができます。

XmlDocument doc = new XmlDocument(); 
var text = @"<dockmenu>  
       <photo image=""images/4runner-sr5.jpg"" url=""www.example.com"" target=""_blank""><![CDATA[4Runner]]></photo>  
       <photo image=""images/4runner.jpg"" url=""www.example.com"" target=""_blank""><![CDATA[4Runner<br>Dock Beautiful]]></photo>  
      </dockmenu>"; 
doc.LoadXML(text); 
XmlNode newChild = doc.CreateElement("photo"); 
XmlAttribute image = doc.CreateAttribute("image"); 
image.Value = "images/new.jpg"; 
newChild.Attributes.Append(image); 

XmlAttribute url = doc.CreateAttribute("url"); 
url.Value = "www.new.com"; 
newChild.Attributes.Append(url); 

XmlAttribute target = doc.CreateAttribute("target"); 
target.Value = "_blank"; 
newChild.Attributes.Append(target); 

XmlNode root = doc.SelectSingleNode("//dockmenu"); 
root.AppendChild(newChild);