/// <summary> /// Ein xhtml- Dokument mit lokalen Referenzen auf Bilddateien wird in ein Woc gewandelt, indem /// 1) Alle Überschriften markiert werden /// 2) Alle Bildreferenzen in Wocnamen umgewandelt werden /// </summary> /// <param name="xhtml">xhtml- Datei</param> /// <param name="metafile">Metadaten eines Woc wie WocGuid etc.</param> /// <param name="ImgSrcBase">Relativer Pfad zum Bilderverzeichnis auf dem Woc- Server</param> /// <param name="mapImgSrcToWoc">Liste aller Bilddateien, die in einem Wocnamen umbenannt werden müssen</param> /// <returns></returns> public static string ConvertToWocFormat(string xhtml, Woc.WocMetaFile metafile, string ImgSrcBase, out List <MapImgSrcWoc> mapImgSrcToWoc) { System.IO.StringReader str = new StringReader(xhtml); XmlReader reader = XmlReader.Create(str); XElement doc = XElement.Load(reader, LoadOptions.SetLineInfo); korrigiere(doc); headlineMarker(doc); setMetafile(doc, metafile); mapImgSrcToWoc = new List <MapImgSrcWoc>(); SetImgSrcBaseInWoc(metafile.WocGuid, ImgSrcBase, doc, mapImgSrcToWoc); StringBuilder bld = new StringBuilder(); foreach (XElement xe in doc.Elements()) { bld.Append(xe.ToString()); } return(bld.ToString()); }
/// <summary> /// Setzt die Metainformation in einem Woc /// </summary> /// <param name="doc"></param> /// <param name="metafile"></param> private static void setMetafile(XElement doc, Woc.WocMetaFile metafile) { try { var head = doc.Elements().Where(e => e.Name.LocalName.ToLower() == "head").First(); // metafile in ein XElement umwandeln string metafileAsXmlString; mko.algorithm.InfosSerializer <Woc.WocMetaFile> .WriteToXml(metafile, out metafileAsXmlString); System.IO.StringReader strReaderMeta = new StringReader(metafileAsXmlString); XmlReader reader = XmlReader.Create(strReaderMeta); XElement xmeta = XElement.Load(reader); // metafile in den Head vom Woc einfügen head.AddAfterSelf(xmeta); } catch (Exception ex) { throw new Exception("Beim Setzen des Metafiles in einem neuen Woc", ex); } }