Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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# 使用XDocument生成具有多个名称空间的XML_C#_Xml_Linq To Xml - Fatal编程技术网

C# 使用XDocument生成具有多个名称空间的XML

C# 使用XDocument生成具有多个名称空间的XML,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,我有这样的XML: <stream:stream to="lap-020.abcd.co.in" from="sourav@lap-020.abcd.co.in" xml:lang="en" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"/> 但我有一个例外: 其他信息:名称中不能包含十六进制值0x3A的“:”字符 您可以像这样添加名称空间 XElement r

我有这样的XML:

<stream:stream to="lap-020.abcd.co.in" from="sourav@lap-020.abcd.co.in" xml:lang="en" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"/>
但我有一个例外:

其他信息:名称中不能包含十六进制值0x3A的“:”字符


您可以像这样添加名称空间

 XElement root = new XElement("{http://www.adventure-works.com}Root",
    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),
    new XElement("{http://www.adventure-works.com}Child", "child content")
);
此示例生成以下输出:

    <aw:Root xmlns:aw="http://www.adventure-works.com">
  <aw:Child>child content</aw:Child>
</aw:Root>

子内容

要添加命名空间声明,可以使用
XNamespace.Xmlns
,要引用预定义的命名空间前缀
xml
可以使用
XNamespace.xml
,例如:

XNamespace stream = "http://etherx.jabber.org/streams";
var result = new XElement(stream + "stream",
                    new XAttribute("from", "sourav@lap-020.abcd.co.in"),
                    new XAttribute("to","lap-020.abcd.co.in"),
                    new XAttribute(XNamespace.Xmlns + "stream", stream),
                    new XAttribute("version","1.0"),
                    new XAttribute(XNamespace.Xml+"lang","en"),
                    String.Empty);
Console.WriteLine(result);
//above prints :
//<stream:stream from="sourav@lap-020.abcd.co.in" to="lap-020.abcd.co.in" 
//               xmlns:stream="http://etherx.jabber.org/streams" version="1.0" 
//               xml:lang="en">
//</stream:stream>
XNamespace流=”http://etherx.jabber.org/streams";
var result=new-XElement(流+“流”,
新XAttribute(“from”sourav@lap-020.abcd.co.in.),
新XAttribute(“致”,“lap-020.abcd.co.in”),
新的XAttribute(XNamespace.Xmlns+“流”,流),
新XAttribute(“版本”、“1.0”),
新的XAttribute(XNamespace.Xml+“lang”,“en”),
字符串(空);
控制台写入线(结果);
//以上印刷品:
//
//

您能告诉我如何生成像这样的结束标记而不是/>吗??
XNamespace stream = "http://etherx.jabber.org/streams";
var result = new XElement(stream + "stream",
                    new XAttribute("from", "sourav@lap-020.abcd.co.in"),
                    new XAttribute("to","lap-020.abcd.co.in"),
                    new XAttribute(XNamespace.Xmlns + "stream", stream),
                    new XAttribute("version","1.0"),
                    new XAttribute(XNamespace.Xml+"lang","en"),
                    String.Empty);
Console.WriteLine(result);
//above prints :
//<stream:stream from="sourav@lap-020.abcd.co.in" to="lap-020.abcd.co.in" 
//               xmlns:stream="http://etherx.jabber.org/streams" version="1.0" 
//               xml:lang="en">
//</stream:stream>