我试图找到,是否有可用的库将NCPDP格式的消息转换为java格式的XML格式?在Mirth Connect工具中,可以使用以下行直接选择将NCPDP转换为XML:
var serializationProperties = SerializerFactory.getDefaultSerializationProperties('NCPDP');
SerializerFactory.getSerializer('NCPDP', serializationProperties, null).toXML(ncpdpmessage);
和Mirth Connect提供此功能,因此他们在后端使用一些api或库将NCPDP转换为XML。我想做同样的事,但在java。
任何帮助表示感谢。
答案 0 :(得分:2)
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();
因此,如果您想要使用相同的,您可能需要所有其他相关的Mirth库。由于NCPDPReader扩展了SAXParser并且不依赖于任何其他Mirth包,您可以尝试基于此构建自己的库。 (在开始之前检查版权和许可证说明。) 您也可以尝试查找其他NCPDP Java解析器,例如JParser。