【发布时间】:2014-12-12 18:42:28
【问题描述】:
我正在尝试使用 XmlDocument 创建一个 XML 文件,然后将其传递给 API。大多数数据输出正确,但是无论我尝试什么,都有一个元素不能正确输出。
这是我当前的输出
<agentInventoryReference xmlns="demo.org.uk/demo/AgentInventoryReference"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<agentInventoryIdentity xmlns="">
<shed xmlns="demo.org.uk/demom/AgentInventoryIdentifier">TAX</shed>
<arrivalPort xmlns="demo.org.uk/demo/AgentInventoryIdentifier">LHR</arrivalPort>
<masterAirwayBillPrefix xmlns="demo.org.uk/demo/AgentInventoryIdentifier">125</masterAirwayBillPrefix>
<masterAirwayBillNumber xmlns="demo.org.uk/demo/AgentInventoryIdentifier">12345678</masterAirwayBillNumber>
<nominatedAgent xmlns="demo.org.uk/demo/AgentInventoryIdentifier">DRB</nominatedAgent>
</agentInventoryIdentity>
我需要在打开的 agentInventoryIdentity 元素的末尾删除 xmlns=""。
我的代码如下所示:
XmlDocument generateInventoryXml = new XmlDocument();
XmlElement root = generateInventoryXml.CreateElement ("agentInventoryReference", "demo.org.uk/demo/AgentInventoryReference");
root.SetAttribute("xmlns", "demo.org.uk/demo/AgentInventoryReference");
root.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
generateInventoryXml.AppendChild(root);
XmlElement agentInventoryIdentity = generateInventoryXml.CreateElement("agentInventoryIdentity");
XmlElement shed = generateInventoryXml.CreateElement("shed", "demo.org.uk/Sequoia/AgentInventoryIdentifier");
XmlElement arrivalport = generateInventoryXml.CreateElement("arrivalPort", "demo.org.uk/demo/AgentInventoryIdentifier");
XmlElement masterAirwayBillPrefix = generateInventoryXml.CreateElement("masterAirwayBillPrefix","demo.org.uk/demo/AgentInventoryIdentifier");
XmlElement masterAirwayBillNumber = generateInventoryXml.CreateElement("masterAirwayBillNumber", "demo.org.uk/demo/AgentInventoryIdentifier");
XmlElement nominatedAgent = generateInventoryXml.CreateElement("nominatedAgent", "demo.org.uk/demo/AgentInventoryIdentifier");
shed.InnerText = shedCode;
arrivalport.InnerText = arrivalPort;
masterAirwayBillPrefix.InnerText = awbPrefix;
masterAirwayBillNumber.InnerText = awbNumber;
nominatedAgent.InnerText = agent;
agentInventoryIdentity.AppendChild(shed);
agentInventoryIdentity.AppendChild(arrivalport);
agentInventoryIdentity.AppendChild(masterAirwayBillPrefix);
agentInventoryIdentity.AppendChild(masterAirwayBillNumber);
agentInventoryIdentity.AppendChild(nominatedAgent);
generateInventoryXml.DocumentElement.AppendChild(agentInventoryIdentity);
GenerateInventoryXml = generateInventoryXml.InnerXml;
【问题讨论】:
-
您想从 XDocument 中删除
xmlns吗? -
仅来自
元素 -
您的标题是
XDocument,但您的代码使用的是XmlDocument- 更改您的标题。
标签: c# xml linq-to-xml