Example #1
0
        /// <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());
        }
Example #2
0
        /// <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);
            }
        }