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

How to convert NCPDP standard format message to xml format in java?

我正在寻找,是否有可用的库将 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.

感谢任何帮助。

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。