【发布时间】:2014-02-16 22:55:09
【问题描述】:
我有以下两个 xml 字符串
<?xml version="1.0"?>
<AccessRequest xml:lang='en-US'>
<AccessLicenseNumber>YOURACCESSLICENSENUMBER</AccessLicenseNumber>
<UserId>YOURUSERID</UserId>
<Password>YOURPASSWORD</Password>
</AccessRequest>
和
<?xml version="1.0" ?>
<RatingServiceSelectionRequest>
<PickupType>
<Code>01</Code>
</PickupType>
<Shipment>
<Description>Rate </Description>
<Shipper>
<Address>
<PostalCode>originzip</PostalCode>
</Address>
</Shipper>
<ShipTo>
<Address>
<PostalCode>destinationzip</PostalCode>
<CountryCode>countrycode</CountryCode>
</Address>
</ShipTo>
<Service>
<Code>11</Code>
</Service>
<Package>
<PackagingType>
<Code>02</Code>
<Description>Package</Description>
</PackagingType>
<Description>Rate Shopping</Description>
<PackageWeight>
<Weight>weight</Weight>
</PackageWeight>
</Package>
<ShipmentServiceOptions/>
</Shipment>
</RatingServiceSelectionRequest>
我想将第二个 xml 字符串附加到第一个。我尝试将两个 XmlDocument 都写入 XmlWriter。但它会抛出异常“无法编写 XML 声明。XML 声明只能在文档的开头。”
Stream stm = req.GetRequestStream();
XmlDocument doc1 = new XmlDocument();
XmlDocument doc2 = new XmlDocument();
doc1.LoadXml(xmlData1);
doc2.LoadXml(xmlData2);
XmlWriterSettings xws = new XmlWriterSettings();
xws.ConformanceLevel = ConformanceLevel.Fragment;
using (XmlWriter xw = XmlWriter.Create(stm, xws))
{
doc1.WriteTo(xw);
doc2.WriteTo(xw);
}
如何按原样附加它?请帮忙
【问题讨论】:
-
您在第一行有错字
<?xmlversion="1.0"?>... xml 和 version 之间没有空格? -
@coder.感谢您指出第一行的错字。我在发布问题时写错了。
-
@Alberto 我试过了。它将从 RatingServiceSelectionRequest 开始的第二个 xml 节点添加到 AccessRequest 节点。但我需要将它附加在 AccessRequest 节点之后而不会丢失 .