Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/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# 特定XML数据的代码_C#_Asp.net_Xml_Wpf - Fatal编程技术网

C# 特定XML数据的代码

C# 特定XML数据的代码,c#,asp.net,xml,wpf,C#,Asp.net,Xml,Wpf,我需要从c#代码生成这个xml,但是我在多个编写器提供的xmlwriter中迷失了方向。。任何有xml专业知识的人都可以帮助我编写C#代码来生成以下xml: <?xml version="1.0" encoding="utf-16" ?> <Request xmlns="http://www.ABC.com/submit" xmlns:l="http://www.ABC.com/link" l:source="SRC" l:date="2014-03-05">

我需要从c#代码生成这个xml,但是我在多个编写器提供的xmlwriter中迷失了方向。。任何有xml专业知识的人都可以帮助我编写C#代码来生成以下xml:

<?xml version="1.0" encoding="utf-16" ?> 
<Request xmlns="http://www.ABC.com/submit" xmlns:l="http://www.ABC.com/link" l:source="SRC" l:date="2014-03-05">
    <MyData l:identifier="PRAV" l:value="151.19448366182007269092408546">
        <DATA1 l:value="0.151328110447635" /> 
        <DATA2 l:value="0.6461191930062688087600920641" /> 
        <DATA3 l:value="0.144793773777417" /> 
    </MyData>
</Request>

使用Visual Studio的功能

有了它,您可以复制XML结构(前提是它是有效的,而当前不是有效的)

选择:

  • 编辑
  • 特殊粘贴
  • 将XML粘贴为类
这将为您提供一个表示XML的类:

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.ABC.com/submit", IsNullable = false)]
public partial class Request
{
    private RequestMyData myDataField;
    private string sourceField;
    private System.DateTime dateField;

    /// <remarks/>
    public RequestMyData MyData
    {
        get
        {
            return this.myDataField;
        }
        set
        {
            this.myDataField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public string source
    {
        get
        {
            return this.sourceField;
        }
        set
        {
            this.sourceField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link", DataType = "date")]
    public System.DateTime date
    {
        get
        {
            return this.dateField;
        }
        set
        {
            this.dateField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyData
{
    private RequestMyDataDATA1 dATA1Field;
    private RequestMyDataDATA2 dATA2Field;
    private RequestMyDataDATA3 dATA3Field;
    private string identifierField;
    private decimal valueField;

    /// <remarks/>
    public RequestMyDataDATA1 DATA1
    {
        get
        {
            return this.dATA1Field;
        }
        set
        {
            this.dATA1Field = value;
        }
    }

    /// <remarks/>
    public RequestMyDataDATA2 DATA2
    {
        get
        {
            return this.dATA2Field;
        }
        set
        {
            this.dATA2Field = value;
        }
    }

    /// <remarks/>
    public RequestMyDataDATA3 DATA3
    {
        get
        {
            return this.dATA3Field;
        }
        set
        {
            this.dATA3Field = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public string identifier
    {
        get
        {
           return this.identifierField;
        }
        set
        {
            this.identifierField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public decimal value
    {
        get
        {
            return this.valueField;
        }
        set
        {
            this.valueField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA1
{
    private decimal valueField;

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public decimal value
    {
        get
        {
            return this.valueField;
        }
        set
        {
            this.valueField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA2
{
    private decimal valueField;

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public decimal value
    {
        get
        {
            return this.valueField;
        }
        set
        {
            this.valueField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA3
{
    private decimal valueField;

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public decimal value
    {
        get
        {
            return this.valueField;
        }
        set
        {
            this.valueField = value;
        }
    }
}
//
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
[System.Xml.Serialization.XmlRootAttribute(命名空间=”http://www.ABC.com/submit“,IsNullable=false)]
公共部分类请求
{
私有RequestMyData myDataField;
私有字符串源字段;
private System.DateTime日期字段;
/// 
公共请求MyData MyData
{
得到
{
返回this.myDataField;
}
设置
{
this.myDataField=值;
}
}
/// 
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共字符串源
{
得到
{
返回此.sourceField;
}
设置
{
this.sourceField=值;
}
}
/// 
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link,DataType=“日期”)]
public System.DateTime日期
{
得到
{
返回此.dateField;
}
设置
{
this.dateField=值;
}
}
}
/// 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
公共部分类RequestMyData
{
私有请求MyData1 Data1字段;
私有请求MyData2 Data2字段;
private RequestMyData3 Data3字段;
私有字符串标识符字段;
私有十进制值字段;
/// 
公共请求MyData1 DATA1
{
得到
{
返回此.data1字段;
}
设置
{
this.dATA1Field=值;
}
}
/// 
公共请求MyData2 DATA2
{
得到
{
返回此.data2字段;
}
设置
{
this.dATA2Field=值;
}
}
/// 
公共请求MyData3 DATA3
{
得到
{
返回此.data3字段;
}
设置
{
this.data3字段=值;
}
}
/// 
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共字符串标识符
{
得到
{
返回此.identifierField;
}
设置
{
this.identifierField=值;
}
}
/// 
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共十进制值
{
得到
{
返回此.valueField;
}
设置
{
this.valueField=值;
}
}
}
/// 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
公共部分类RequestMyData1
{
私有十进制值字段;
/// 
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共十进制值
{
得到
{
返回此.valueField;
}
设置
{
this.valueField=值;
}
}
}
/// 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
公共部分类RequestMyData2
{
私有十进制值字段;
/// 
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共十进制值
{
得到
{
返回此.valueField;
}
设置
{
this.valueField=值;
}
}
}
/// 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
公共部分类RequestMyData3
{
私有十进制值字段;
/// 
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共十进制值
{
得到
{
返回此.valueField;
}
设置
{
this.valueField=值;
}
}
}
使用Visual Studio的功能

有了它,您可以复制XML结构(前提是它是有效的,而当前不是有效的)

选择:

  • 编辑
  • 特殊粘贴
  • 将XML粘贴为类
这将为您提供一个表示XML的类:

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.ABC.com/submit", IsNullable = false)]
public partial class Request
{
    private RequestMyData myDataField;
    private string sourceField;
    private System.DateTime dateField;

    /// <remarks/>
    public RequestMyData MyData
    {
        get
        {
            return this.myDataField;
        }
        set
        {
            this.myDataField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public string source
    {
        get
        {
            return this.sourceField;
        }
        set
        {
            this.sourceField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link", DataType = "date")]
    public System.DateTime date
    {
        get
        {
            return this.dateField;
        }
        set
        {
            this.dateField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyData
{
    private RequestMyDataDATA1 dATA1Field;
    private RequestMyDataDATA2 dATA2Field;
    private RequestMyDataDATA3 dATA3Field;
    private string identifierField;
    private decimal valueField;

    /// <remarks/>
    public RequestMyDataDATA1 DATA1
    {
        get
        {
            return this.dATA1Field;
        }
        set
        {
            this.dATA1Field = value;
        }
    }

    /// <remarks/>
    public RequestMyDataDATA2 DATA2
    {
        get
        {
            return this.dATA2Field;
        }
        set
        {
            this.dATA2Field = value;
        }
    }

    /// <remarks/>
    public RequestMyDataDATA3 DATA3
    {
        get
        {
            return this.dATA3Field;
        }
        set
        {
            this.dATA3Field = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public string identifier
    {
        get
        {
           return this.identifierField;
        }
        set
        {
            this.identifierField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public decimal value
    {
        get
        {
            return this.valueField;
        }
        set
        {
            this.valueField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA1
{
    private decimal valueField;

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public decimal value
    {
        get
        {
            return this.valueField;
        }
        set
        {
            this.valueField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA2
{
    private decimal valueField;

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public decimal value
    {
        get
        {
            return this.valueField;
        }
        set
        {
            this.valueField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.ABC.com/submit")]
public partial class RequestMyDataDATA3
{
    private decimal valueField;

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(Form = System.Xml.Schema.XmlSchemaForm.Qualified, Namespace = "http://www.ABC.com/link")]
    public decimal value
    {
        get
        {
            return this.valueField;
        }
        set
        {
            this.valueField = value;
        }
    }
}
//
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true,命名空间=”http://www.ABC.com/submit")]
[System.Xml.Serialization.XmlRootAttribute(命名空间=”http://www.ABC.com/submit“,IsNullable=false)]
公共部分类请求
{
私有RequestMyData myDataField;
私有字符串源字段;
private System.DateTime日期字段;
/// 
公共请求MyData MyData
{
得到
{
返回this.myDataField;
}
设置
{
this.myDataField=值;
}
}
/// 
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified,命名空间=”http://www.ABC.com/link")]
公共字符串源
{
得到
    var listOfData = new List<Data> {new Data {Value = 0.15}, new Data {Value = 0.64}};
        var myData = new MyData {Identifier = "PRAV", Value = 151.194, Datum = listOfData};
        var request = new Request {MyData = myData, Source = "SRC"};
        XmlSerializer ser = new XmlSerializer(typeof(Request));
        StringWriter sw = new StringWriter();
        ser.Serialize(sw, request);
        Console.WriteLine(sw.ToString());
 <?xml version="1.0" encoding="utf-16"?> 
 <Request
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http:/ /www.w3.org/2001/XMLSchema" Source="SRC">   
      <MyData Identifier="PRAV" Value="151.194">
           <Datum>
                <Data Value="0.15" />
                <Data Value="0.64" />
           </Datum>   
      </MyData> 
 </Request>
using System.Xml.Linq;

var doc = new XDocument(new XDeclaration("1.0", "utf-16", ""));    
XNamespace ns = "http://www.ABC.com/submit";
XNamespace l = "http://www.ABC.com/link";

        //<Request>
doc.Add(new XElement(ns+"Request",
            //xmlns="http://www.ABC.com/submit"
            new XAttribute("xmlns", "http://www.ABC.com/submit"),
            //xmlns:l="http://www.ABC.com/link"
            new XAttribute(XNamespace.Xmlns + "l", "http://www.ABC.com/link"),
            //l:source="SRC"
            new XAttribute(l+"source", "SRC"),
            //l:date="2014-03-05"
            new XAttribute(l + "date", "2014-03-05"),
            //<MyData>
            new XElement(ns+"MyData",
                //l:identifier="PRAV" 
                new XAttribute(l+"identifier", "PRAV"),
                //l:value="151.19448366182007269092408546"
                new XAttribute(l + "value", "151.19448366182007269092408546"),
                //<DATA1> 
                new XElement(ns+"DATA1",
                    //l:value="0.151328110447635"
                    new XAttribute(l + "value", "0.151328110447635")),
                //<DATA2> 
                new XElement(ns+"DATA2",
                    //l:value="0.6461191930062688087600920641"
                    new XAttribute(l + "value", "0.6461191930062688087600920641")),
                //<DATA3> 
                new XElement(ns+"DATA3",
                    //l:value="0.144793773777417"
                    new XAttribute(l + "value", "0.144793773777417")))));
doc.Save("xml_name.xml");