Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.net在和XDocument中创建XLink节点_C#_Asp.net_Linq To Xml_Xlink - Fatal编程技术网

C# ASP.net在和XDocument中创建XLink节点

C# ASP.net在和XDocument中创建XLink节点,c#,asp.net,linq-to-xml,xlink,C#,Asp.net,Linq To Xml,Xlink,我试图以编程方式向XDocument添加一个新的XLink节点,但.Net似乎将它们创建为原子化的名称空间和名称,我找不到任何代码将XLink节点添加到XML 我的代码如下所示: //read in the current XML content XDocument content = XDocument.Parse(xmlContent); //add a new node called large images XElement newNode = new XElement("large_

我试图以编程方式向XDocument添加一个新的XLink节点,但.Net似乎将它们创建为原子化的名称空间和名称,我找不到任何代码将XLink节点添加到XML

我的代码如下所示:

//read in the current XML content
XDocument content = XDocument.Parse(xmlContent);

//add a new node called large images
XElement newNode = new XElement("large_images", "");
newNode.SetAttributeValue("{xmlns}xlink", "http://www.w3.org/1999/xlink");
newNode.SetAttributeValue("{xlink}type", "simple");
newNode.SetAttributeValue("{xlink}href", "tcm:5-550");
newNode.SetAttributeValue("{xlink}title", "of1_454x340.jpg");
content.Add(newNode);
不幸的是,这个新节点如下所示:

<large_images p1:xlink="http://www.w3.org/1999/xlink" p2:type="simple" p2:href="tcm:5-550" p2:title="of1_454x340.jpg" xmlns:p2="xlink" xmlns:p1="xmlns"></large_images>

但我需要节点看起来像这样才能通过XML验证:

<large_images xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="tcm:5-550" xlink:title="of1_454x340.jpg"></large_images>

有人能帮忙吗?我不想走String.Replace()的路线,因为这似乎是另一种可能的方式

谢谢

Ryan

我会这样做:

XNamespace ns = "http://www.w3.org/1999/xlink";

XElement newNode = new XElement("large_images",
    new XAttribute(XNamespace.Xmlns + "xlink", ns),
    new XAttribute(ns + "type", "simple),
    new XAttribute(ns + "href", "tcm:5-550"),
    new XAttribute(ns + "title", "of1_454x340.jpg"));
这将生成以下内容的XML:

<large_images xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
    xlink:href="tcm:5-550" xlink:title="of1_454x340.jpg" />

太好了。非常感谢,乔恩。