我的目标是构建一个引擎,它使用最新的HL7 3.0CDA文档,并使它们与HL7 2.5向后兼容,后者是一个完全不同的野兽。
CDA文档是一个XML文件,当与匹配的XSL文件配对时,它会呈现适合最终用户显示的HTML文档。
在HL7 2.5中,我需要获取呈现的文本,不需要任何标记,并将其折叠成文本流(或类似的),我可以用80个字符的行来填充HL7 2.5消息。
到目前为止,我正在采用一种使用xslcompiledTransform的方法来使用xslt转换我的XML文档并生成一个结果HTML文档。
我的下一步是使用该文档(或者在这之前的一步)并将HTML呈现为文本。我已经找了一段时间了,但还不知道该怎么做。我希望这是一件容易的事情,我只是忽视,或只是找不到神奇的搜索词。有人能帮忙吗?
fwiw,我已经阅读了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());
}
}
}