2014-10-17 169 views
0

我正在尝试使用XmlDocument创建XML文件,然后将其传递给API。大多数数据输出正确,但是有一个元素没有,无论我尝试什么。使用XmlDocument格式化XML

这是我的当前输出

<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> 

我需要删除的xmlns = “” 在开口agentInventoryIdentity元件的端部。

我的代码如下所示:

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; 
+0

你想删除的XDocument了'xmlns'? – 2014-10-17 08:41:34

+0

只是从元素 – Ross 2014-10-17 08:43:23

+0

您的标题说'XDocument',但您的代码使用'XmlDocument' - 更改您的标题。 – 2014-10-17 09:27:53

回答

0

试试这个:

XmlElement agentInventoryIdentity = generateInventoryXml.CreateElement("agentInventoryIdentity",generateInventoryXml.DocumentElement.NamespaceURI);` 

或者

XmlElement agentInventoryIdentity = generateInventoryXml.CreateElement("agentInventoryIdentity","demo.org.uk/demo/AgentInventoryReference");