0

我试图在其他问题中找到答案,但没有一个“标准”答案有效,所以我希望有人可以指出我已经回答了这个问题,或者可以告诉我如何做到这一点。

我有一个包含多个文档的大文件。对于一个样本,假设是这样的

DOCUMENT_IDENTIFIER    123400000000000000000123457   OTHER STUFF HERE
LINE WITH STUFF HERE
LINE WITH STUFF HERE
DOCUMENT_IDENTIFIER    123500000000000000000127456   OTHER STUFF HERE
LINE WITH STUFF HERE
LINE WITH STUFF HERE

现在,我需要保留DOCUMENT_IDENTIFIER从第一个 0 到123(或127第二个文档)标题行的行中的所有内容,加上LINE WITH STUFF HERE它下面的所有行应该组成一个文档,并且一个新文档应该从第二DOCUMENT_IDENTIFIER行。

当我尝试使用标准的 Debatching 技术时,管道失败:要么完全失败(例如,当我尝试为管道定义标题和正文模式时),要么它永远不会启动第二个文档(如果我尝试只是身体模式)。

我确定这是相当简单的事情,但我完全不知道如何完成它。欢迎任何建议/方向。

如果重要的话,我目前被困在 BT2006 R2 上。

4

1 回答 1

0

你的身体图式是什么样的?我会开始做对,并确保你有一些东西可以创建带有所有“DOCUMENT_IDENTIFIER 1234”记录的单独记录的xml。

我将使用“DOCUMENT_IDENTIFIER”1234 位作为标签标识符,然后将标签偏移设置为 4,以避免前 4 个字符。

你应该有一个

RecordForDocumentIdentifiers(您的架构的根)Group Maxoccurs=* RecordForDocumentIdentifier(在此处设置标签标识符)您要解析的列的字段

  RecordForOtherLines   Group Maxoccurs=*
           RecordForOtherLine   Maxoccurs=* or whatever your rules are.   
                   Fields for the columns of other lines

当这似乎可以解析您的示例并生成所需的 XML 时,我将开始从中创建我的标题和正文模式。我知道这是两个步骤,但它需要一些猜测。

我猜 Header 模式将从 RecordDocumentIdentifier 中挑选出来,而正文将是 RecordForOtherLines (外部记录)。

我希望这会有所帮助。如果没有,请发布您的实际文件和架构,让我们看一下。

于 2012-02-16T17:31:17.143 回答