如何在Java中将NCPDP标准格式消息转换为xml格式?

问题描述:

我试图找到,是否有任何库可用,将NCPDP格式的消息转换为java中的XML格式?在欢乐连接工具,有直接的选项NCPDP转换为XML使用该行:如何在Java中将NCPDP标准格式消息转换为xml格式?

var serializationProperties = SerializerFactory.getDefaultSerializationProperties('NCPDP'); 
SerializerFactory.getSerializer('NCPDP', serializationProperties, null).toXML(ncpdpmessage); 

和欢乐连接给这个功能,所以他们必须使用一些API或库后端NCPDP转换为XML。我想要做同样的事情,但在java中。

任何帮助表示赞赏。

+0

您是否尝试过Java调用动态(https://www.infoq.com/articles/Invokedynamic-Javas-secret-weapon)调用JS来提供转换? –

+0

它与ncpdp格式无关xml转换@BorisPavlović – yash

+0

您问题的代码片段看起来像JS。也许可以使用invoke dynamic从Java中调用它。 –

Mirth Connect使用其自己的NCPDP串行器实现。您可以在\ extensions \ datatype-ncpdp文件夹的datatype -ncpdp-shared.jar中找到它。

总之,NCPDPSerializer.toXml()代码执行以下操作:

NCPDPReader ncpdpReader = new NCPDPReader(serializationSegmentDelimiter, serializationGroupDelimiter, serializationFieldDelimiter); 
StringWriter stringWriter = new StringWriter(); 
XMLPrettyPrinter serializer = new XMLPrettyPrinter(stringWriter); 
ncpdpReader.setContentHandler(serializer); 
ncpdpReader.parse(new InputSource(new StringReader(source))); 
return stringWriter.toString(); 

所以,如果你想利用你可能需要的所有其他相关欢乐库相同。由于NCPDPReader扩展了SAXParser,并且不依赖于任何其他Mirth包,所以您可以尝试基于此构建自己的库。 (在开始之前请检查版权和许可证注释。) 您也可以尝试查找其他NCPDP Java解析器,如JParser。

+0

我从[这里](http://www.mirthcorp.com/community/fisheye/browse/~br=3.2.x/Mirth/branches/3.2.x)的结帐项目,它包含所有与ncpdp相关的类,但我不知道我怎么能创建自己的类使用的类相同的方式,在这个两行中欢乐:'var serializationProperties = SerializerFactory.getDefaultSerializationProperties('NCPDP'); ('NCPDP',serializationProperties,null).toXML(ncpdpmessage);' – yash

+0

我在上面发布了什么SerializerFactory.getSerializer('NCPDP',serializationProperties,null).toXML(ncpdpmessage)'。上面的代码 – Shamil

+0

将ncpdp消息转换为xml? – yash