我必须用我的 XML 作为输入消息生成 HL7 消息。我在这里面临一些不同的情况。
问题:如果我们在输入 XML 消息的某些字段中收到“Enter” (\r\n) 字符。最终的 HL7 文件在 HL7 消息中使用该字段的地方中断。这使得 HL7 消息无效,因此我们的目标系统拒绝该消息。
我尝试了以下方法:
1. Map • orch 中接收到的XML 消息使用相同的模式转换为另一个XML 消息。我们尝试在地图中遵循不同的方式。o 如果输入字段由\r\n 值组成,则脚本functoid 用于分配空值。或 o XSLT 用于通过检查输入字段中的值将输入 XML 消息转换为输出 或 o 简单的一对一映射用于将输入 XML 消息转换为输出 XML 消息
输出 • 使用上述三种方法,输出 XML 消息仅为 NULL。
2. 类库 • 在 orch 中接收到的 XML 消息作为输入传递给 C# 函数。• 请找到以下代码:
输出 o 该函数的输出 XML 没有新行 (\r\n)。但最终的 HL7 消息仅在该字段中断。
公共静态 XmlDocument RemoveNewLineCharacters(XLANGMessage msg) { XmlDocument xmlDoc =(XmlDocument)msg[0].RetrieveAs(typeof(XmlDocument));
XmlDocument XmlIndentedMessage = new XmlDocument();
string IndentedMessage = string.Empty;
StringBuilder StrBldr = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.UTF8;
settings.Indent = true;
xmlDoc.PreserveWhitespace = false;
XmlWriter writer;
writer = XmlWriter.Create(StrBldr, settings);
xmlDoc.Save(writer);
IndentedMessage = StrBldr.ToString();
XmlIndentedMessage.LoadXml(IndentedMessage);
writer.Close();
return XmlIndentedMessage;
}
非常感谢解决此问题的任何帮助。
谢谢