我的目标是构建一个引擎,该引擎采用最新的 HL7 3.0 CDA 文档,并使它们向后兼容 HL7 2.5,这是一个完全不同的野兽。
CDA 文档是一个 XML 文件,当与其匹配的 XSL 文件配对时,它会呈现一个适合显示给最终用户的 HTML 文档。
在 HL7 2.5 中,我需要获取渲染的文本,没有任何标记,并将其折叠成一个文本流(或类似的),我可以用 80 个字符行写出以填充 HL7 2.5 消息。
到目前为止,我正在采用一种方法,即使用 XslCompiledTransform 来使用 XSLT 转换我的 XML 文档并生成一个 HTML 文档。
我的下一步是获取该文档(或者可能在此之前的一步)并将 HTML 呈现为文本。我已经搜索了一段时间,但无法弄清楚如何做到这一点。我希望它很容易被我忽略,或者只是找不到神奇的搜索词。任何人都可以提供一些帮助吗?
FWIW,我已经阅读了 SO 中的 5 或 10 个其他问题,这些问题包含或告诫为此使用 RegEx,并且不认为我想走那条路。我需要渲染的文本。
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class TransformXML
{
public static void Main(string[] args)
{
try
{
string sourceDoc = "C:\\CDA_Doc.xml";
string resultDoc = "C:\\Result.html";
string xsltDoc = "C:\\CDA.xsl";
XPathDocument myXPathDocument = new XPathDocument(sourceDoc);
XslCompiledTransform myXslTransform = new XslCompiledTransform();
XmlTextWriter writer = new XmlTextWriter(resultDoc, null);
myXslTransform.Load(xsltDoc);
myXslTransform.Transform(myXPathDocument, null, writer);
writer.Close();
StreamReader stream = new StreamReader (resultDoc);
}
catch (Exception e)
{
Console.WriteLine ("Exception: {0}", e.ToString());
}
}
}