Разбор синтаксического анализа EDI с помощью С#?

Сначала я думал использовать SSIS для анализа файла EDI, однако я видел несколько ручных парсеров EDI (сопоставление полей) и хотел бы использовать автоматизацию этой функции в С#.

Пример файла EDI:

Example EDI File

Ответ 2

Существует библиотека EDI.Net, которая является открытым исходным кодом и поддерживает все три известных формата EDI (X12, EDIFact, Tradacoms). В вашем случае для X12 вам необходимо предоставить пользовательскую реализацию IEdiGrammar следующими пресетами.

public class EDI_X12Grammar : IEdiGrammar
{
...
}

var grammar = new EDI_X12Grammar() 
       {
            ComponentDataElementSeparator = new[] { '>' },
            DataElementSeparator = new[] { '*' },
            DecimalMark = null,
            ReleaseCharacter = null,
            Reserved = new char[0],
            SegmentTerminator = '~',
            ServiceStringAdviceTag = null,
            InterchangeHeaderTag = "ISA",
            FunctionalGroupHeaderTag = "GS",
            MessageHeaderTag = "ST",
            MessageTrailerTag = "SE",
            FunctionalGroupTrailerTag = "GE",
            InterchangeTrailerTag = "IEA",
        };

Отказ от ответственности Я написал библиотеку.

Ответ 3

Это для X12 и очень хорошо работает для моих целей:

http://x12parser.codeplex.com/

Эта командная строка и просто выводит файл XML для вашего файла EDI.

Вы можете адаптировать его для своих целей.

Ответ 5

Я не уверен, что вы открыты для коммерческих инструментов, но на всякий случай я нахожу эту ссылку здесь. Это может помочь кому-то. Отказ от ответственности: я никоим образом не связан с этим провайдером.

FRAMEWORK EDI - Инструменты EDI для программиста (коммерческая структура) - Найдите его здесь: http://www.edidev.com/