所有,
我想创建一个肥皂信封XML文档。
<soap:Envelope soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding" xmlns:soap="http://www.w3.org/2001/12/soap-envelope"></soap:Envelope>
我正在使用
System.Xml.Linq
来执行此操作,但是我不知道如何将soap
前缀添加到encodingStyle
属性。到目前为止,我有这个:
XNamespace ns = XNamespace.Get("http://www.w3.org/2001/12/soap-envelope");
XAttribute prefix = new XAttribute(XNamespace.Xmlns + "soap", ns);
XAttribute encoding = new XAttribute("encodingStyle", "http://www.w3.org/2001/12/soap-encoding");
XElement envelope = new XElement(ns + "Envelope", prefix, encoding);
这给了我
<soap:Envelope encodingStyle="http://www.w3.org/2001/12/soap-encoding" xmlns:soap="http://www.w3.org/2001/12/soap-envelope"></soap:Envelope>
您使用
XAttribute
为元素添加前缀,我可以使用XAttribute
为XAttribute
添加前缀吗?谢谢,P
最佳答案
在创建“encodingStyle” XAttribute时指定 namespace (通过使用ns + "encodingStyle"
):
XAttribute encoding = new XAttribute(ns + "encodingStyle", "http://www.w3.org/2001/12/soap-encoding");
two-parameter XAttribute constructor将
XName
作为第一个参数。这可以从string
隐式构造(如您问题中的代码),也可以直接通过将string
“添加”到XNamespace
来创建XName
(如上所述)。