猿问

获取:“文档将导致无效的 XML 文档”错误

我正在尝试将 xml 文档拆分为多个较小的文档。我想预先定义一个徽章大小(最大节点数/文档),然后将数据插入其中。我的 xml 数据有两种可能的结构:


<?xml version='1.0' encoding='UTF-8' ?>

<V2:EndInvoices">

  <V2:EndInvoice>

  </V2:EndInvoice>

  ...

 </V2:EndInvoices>


<?xml version='1.0' encoding='UTF-8' ?>

<tls:AkontoGroup">

  <tls:AkontoMember>

  </tls:AkontoMember>

  ...

 </tls:AkontoGroup>

现在我只关注一个案例。每个rechnungen.ToArray()[i]元素都包含这些EndInvoice元素之一。我能够创建 4 个文件,其中输入文件包含 20 张发票,分为 5 个(batchSize = 5),每个文件包含一个EndInvoice. 然后我将该行batchRechnung.Add(rechnungen.ToArray()[i]);移出if块,这现在导致了我的错误。


public List<XDocument> createTemporaryXMLFiles(string pathToData, int batchSize)

{

    List<XDocument> batchRechnungen = new List<XDocument>();

    XDocument batchRechnung = new XDocument();

    XElement dataSource = XElement.Load(pathToData);

    IEnumerable<XElement> rechnungen = dataSource.Elements();


    for(int i = 0; i < rechnungen.ToArray().Length; i++)

    {

        if (i == 0 || (i % batchSize) == 0)

        {

            batchRechnung = new XDocument();

            batchRechnungen.Add(batchRechnung);

        }

        batchRechnung.Add(rechnungen.ToArray()[i]);


    }

    return batchRechnungen;

}

如何获得正确的 xml 文件,每个文件都包含


<V2:EndInvoices">

 batchSize x (<V2:EndInvoice></V2:EndInvoice>)

</V2:EndInvoices>


烙印99
浏览 143回答 1
1回答
随时随地看视频慕课网APP
我要回答