私の目標は、最新のHL7 3.0 CDAドキュメントを取得し、根本的に異なる獣であるHL72.5と下位互換性を持たせるエンジンを構築することです。
CDAドキュメントはXMLファイルであり、対応するXSLファイルと組み合わせると、エンドユーザーへの表示に適したHTMLドキュメントになります。
HL7 2.5では、マークアップのないレンダリングされたテキストを取得し、それをテキストストリーム(または同様のもの)に折りたたんで、HL72.5メッセージに入力するために80文字行で書き出す必要があります。
これまでのところ、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());
}
}
}