使用XmlDocument格式化XML

本文关键字:XML 格式化 XmlDocument 使用 | 更新日期: 2023-09-27 18:26:55

我正在尝试使用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;

使用XmlDocument格式化XML

试试这个:

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

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