在我需要的输出中使用XML
<?xml version="1.0" encoding="UTF-8"?>
<units>
<unit>
<unit-info xmlns="">
<unit-id>4550669</unit-id>
<order-id>11949776</order-id>
<parcel-id>none</parcel-id>
<supplier-id>6</supplier-id>
</unit-info>
</unit>
</units>
为此我使用了以下C#代码:
XDocument Document = new XDocument();
XDeclaration declaration = new XDeclaration("1.0", "UTF-8", null);
Document.Declaration = declaration;
XNamespace ns = "http://www.elsevier.com/xml/ani/ani";
XNamespace xsi = "http://www.w3.org/2001/XMLSchema-instance";
XNamespace ce = "http://www.elsevier.com/xml/ani/common";
XElement nameSpaceElement = new XElement(
ns + "units", new XAttribute("xmlns", ns), new XAttribute(XNamespace.Xmlns + "xsi", xsi), new XAttribute(XNamespace.Xmlns + "ce", ce), new XAttribute(xsi + "schemaLocation",
"http://www.elsevier.com/xml/ani/ani http://www.elsevier.com/xml/ani/ani512-input-CAR.xsd"),Document.Root);
Document.Add(nameSpaceElement);
XElement uniType = new XElement("unit", new XAttribute("type", "ARTICLE"));
Document.Root.Add(uniType);
XElement unitInfo = new XElement("unit-info", new XElement("unit-id", "4550669"), new XElement("order-id", "11949776"), new XElement("parcel-id", "none"), new XElement("supplier-id", "6"), new XElement("timestamp", DateTime.Now));
Document.Root.Add(unitInfo);
Document.Save("document.txt");
但是我得到了如下文档
的输出<units>
<unit></unit>
<unit-info xmlns="">
<unit-id>4550669</unit-id>
<order-id>11949776</order-id>
<parcel-id>none</parcel-id>
<supplier-id>6</supplier-id>
</unit-info>
</units>
这里我的第二个元素就在那里关闭了。但是我需要在根元素之前关闭该元素。
如何使用XDocument
和XElement
来解决问题。
答案 0 :(得分:0)
您应该将unitInfo添加到uniType,而不是直接添加到根目录。
类似于uniType.Add(unitInfo)而不是 Document.Root.Add(unitInfo)