Java中有没有好的X12解析器?

时间:2012-06-18 06:38:46

标签: java edi x12

Java中是否有可以处理Walmart 810规范的优秀X12解析器?

EDI示例:

ISA*00*          *00*          *16*102096559TEST  *14*PARTNERTEST    *071214*1406*U*00040*810000263*1*T*>
  GS*IN*102096559TEST*PARTNER*20071214*1406*810000263*X*004010
    ST*810*0001
      BIG*20050205*6463367*20050202*3376103367
      REF*IA*123456170*X5T
      REF*DP*00017
      REF*MR*0020
      N1*SU*SUPPLIER NAME
      N1*ST*WAL-MART 100*UL*0078742000992
        N3*406 SOUTH WALTON BLVD
        N4*BENTONVILLE*AR*72712 
      ITD*05*15*****45
      DTM*011*20050205
      FOB*CC
      IT1**1080*EA*3.61**IN*001719653*UP*022108955228*UK*            00221089552284       
        PID*F****ITEM DESCRIPTION
        SAC*A*I410***2350*******02
      TDS*387530
      CAD*T***RDWT*ROADWAY**BM*123456789
      ISS*1080*EA*100*LB
      CTT*1
    SE*19*0001
  GE*1*810000263
IEA*1*810000263

5 个答案:

答案 0 :(得分:7)

试试这个,edireader

解析器通过检查区分ANSI X.12和EDIFACT EDI标准,并使用工厂模式构造适当的解析器子类。

解析器可以像在XML解析器中一样嵌入Java应用程序中,避免了常用EDI转换器常用的基于文件和专有的接口。

答案 1 :(得分:3)

尝试使用Smooks。从页面:

  

Smooks是一个可扩展的框架,用于构建处理XML和非XML的应用程序   使用Java的数据(CSV, EDI ,Java等)。

答案 2 :(得分:0)

如果您对商业产品持开放态度,请查看Oakland Data Transformer。它是用Java编写的,具有基于Eclipse的设计器,Java API或与Apache Camel,Mule ESB和OSGi Blueprint的集成。您可以轻松地以图形方式将其映射到XML,数据库,Java对象或其他内容。

下载时,您需要联系Oakland Software以获取您正在使用的X12 4010 810的规格。

答案 3 :(得分:0)

你可以尝试机器人:http://bots.sourceforge.net 它不是java,而是python。 它不是一个“图书馆”,而是一个应用程序。 处理x12确定,包括810。 您可以将其翻译为您需要的格式(xml,csv,平面文件)

答案 4 :(得分:0)

我们可以使用apache camel,驼峰是非常容易和可扩展的解决方案,

这将给出一个json对象,然后我们可以解析json对象然后获取值。

XmlJsonDataFormat xmlJsonFormat = new XmlJsonDataFormat();
        xmlJsonFormat.setEncoding("UTF-8");
        xmlJsonFormat.setForceTopLevelObject(true);
        xmlJsonFormat.setTrimSpaces(true);
        xmlJsonFormat.setRootName("newRoot");
        xmlJsonFormat.setSkipNamespaces(true);
        xmlJsonFormat.setRemoveNamespacePrefixes(true);
    //  xmlJsonFormat.setExpandableProperties(Arrays.asList("d", "e"));

          from("file:sftpdata/x12files")
            .log("Before unmarshal with SmooksDataFormat:").log("${body}")
            .unmarshal(new SmooksDataFormat("smooks-config1.xml"))
            .log("After unmarshal with SmooksDataFormat:").log("${body}")
           .marshal(xmlJsonFormat)
             .log("After marshalling with Json library:").log("${body}")
             .process(new X12Processor()).log("X12 file processed")
            .to("mock:result");