所有,
我想创建一个肥皂信封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为元素添加前缀,我可以使用XAttributeXAttribute添加前缀吗?

谢谢,P

最佳答案

在创建“encodingStyle” XAttribute时指定 namespace (通过使用ns + "encodingStyle"):

XAttribute encoding = new XAttribute(ns + "encodingStyle", "http://www.w3.org/2001/12/soap-encoding");

two-parameter XAttribute constructorXName作为第一个参数。这可以从string隐式构造(如您问题中的代码),也可以直接通过将string“添加”到XNamespace来创建XName(如上所述)。

10-08 14:17