Mein Ziel ist es, eine Engine zu erstellen, die die neuesten HL7 3.0 CDA-Dokumente nimmt und sie rückwärtskompatibel mit HL7 2.5 macht, was ein völlig anderes Biest ist.Konvertieren von XML in Plain Text
Das CDA-Dokument ist eine XML-Datei, die zusammen mit der entsprechenden XSL-Datei ein HTML-Dokument darstellt, das für die Anzeige an den Endbenutzer geeignet ist.
In HL7 2.5 Ich brauche den gerenderten Text, ohne Markup, und falten Sie es in einen Textstrom (oder ähnlich), die ich in 80 Zeichenzeilen schreiben kann, um die HL7 2.5 Nachricht zu füllen.
Bisher verwende ich einen Ansatz der Verwendung von XslCompiledTransform, um mein XML-Dokument mit XSLT zu transformieren und ein resultierendes HTML-Dokument zu erzeugen.
Mein nächster Schritt ist, das Dokument zu nehmen (oder vielleicht in einem Schritt davor) und den HTML-Code als Text zu rendern. Ich habe eine Weile gesucht, kann aber nicht herausfinden, wie ich das erreichen kann. Ich hoffe, dass es etwas Leichtes ist, dass ich einfach übersehe, oder einfach nicht die magischen Suchbegriffe finde. Kann mir jemand Hilfe anbieten?
FWIW, ich habe die 5 oder 10 anderen Fragen in SO gelesen, die mit RegEx umarmen oder mahnen, und denke nicht, dass ich diesen Weg gehen will. Ich brauche den gerenderten Text.
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());
}
}
}