首先,我想向您展示我生成的XML的样子:
<env:Envelope xmlns:env="http://www.sap.com/SBO/DIS">
<env:Body>
<dis:ExecuteSQLResponse xmlns:dis="http://www.sap.com/SBO/DIS">
<BOM>
<BO>
<AdmInfo>
<Object>oRecordset</Object>
</AdmInfo>
<Table />
</BO>
</BOM>
</ExecuteSQLResponse>
</env:Body>
</env:Envelope>
它应该如何:
<env:Envelope xmlns:env="http://www.sap.com/SBO/DIS">
<env:Body>
<ExecuteSQLResponse xmlns="http://www.sap.com/SBO/DIS">
<BOM>
<BO>
<AdmInfo>
<Object>oRecordset</Object>
</AdmInfo>
<Table />
</BO>
</BOM>
</ExecuteSQLResponse>
</env:Body>
</env:Envelope>
我使用以下代码创建XML:
resXml.Add(New XElement(env + "Envelope",
New XAttribute(XNamespace.Xmlns + "env", env.NamespaceName),
New XElement(env + "Body",
New XElement(dis + "ExecuteSQLResponse",
New XAttribute(XNamespace.Xmlns + "dis", dis.NamespaceName),
New XElement("BOM",
New XElement("BO",
New XElement("AdmInfo",
New XElement("Object", "oRecordset")),
New XElement("Table")))))))
这是一些vb.net代码,但在c#
中应该是相同的我的问题是“dis:ExecuteSQLResponse”尝试并尝试后我无法弄清楚如何在ExecuteSQLResponse之前删除“dis”。 我的意思是命名空间很好..它应该看起来像这样: “ExecuteSQLResponse xmlns =”http://www.sap.com/SBO/DIS“” 没有“dis”
我的XNamespace定义:
Dim env As XNamespace = XNamespace.Get("http://www.w3.org/2003/05/soap-envelope")
Dim dis As XNamespace = XNamespace.Get("http://www.sap.com/SBO/DIS")
答案 0 :(得分:0)
只需更改此部分:
New XElement(dis + "ExecuteSQLResponse", '->which correspond to dis:ExecuteSQLResponse
到此:
New XElement("ExecuteSQLResponse", '->which correspond to ExecuteSQLResponse