Avatar billede misbruger Nybegynder
22. juni 2004 - 12:47 Der er 1 kommentar og
1 løsning

Encoding af html som skal gemmes i xml

Mine brugere skal kunne indtaste noget html i en rich textbox, som efterfølgende skal gemmes i et XML.

Problemet er at man ikke kan gemme html i et xmldoc.

Hvilken form for encoding/decoding vil du anbefale at jeg indfører?

Thx!
Avatar billede arne_v Ekspert
22. juni 2004 - 19:05 #1
Du kan bruge CDATA.

Her er et simpelt eksempel på udskrivning:

using System;
using System.IO;
using System.Text;
using System.Xml;

class MainClass
{
    public static void Main(string[] args)
    {
        XmlTextWriter xtw = new XmlTextWriter("C:\\z.xml", Encoding.UTF8);
        xtw.Formatting = Formatting.Indented;
        xtw.WriteStartDocument();
        xtw.WriteStartElement("mydoc");
        xtw.WriteStartElement("header");
        xtw.WriteString("eksempel");
        xtw.WriteEndElement();
        xtw.WriteStartElement("html");
        xtw.WriteCData("<b>abc</b>");
        xtw.WriteEndElement();
        xtw.WriteEndElement();
        xtw.WriteEndDocument();
        xtw.Close();
    }
}

som skriver en z.xml med:

<?xml version="1.0" encoding="utf-8"?>
<mydoc>
  <header>eksempel</header>
  <html><![CDATA[<b>abc</b>]]></html>
</mydoc>

hvilket er legalt XML.
Avatar billede arne_v Ekspert
22. juni 2004 - 19:11 #2
Eller hvis det er et XmlDocument:

using System;
using System.Xml;

class MainClass
{
    public static void Main(string[] args)
    {
        XmlDocument doc = new XmlDocument();
        XmlNode root = doc.CreateElement("mydoc");
        doc.AppendChild(root);
        XmlNode header = doc.CreateElement("header");
        header.AppendChild(doc.CreateTextNode("eksempel"));
        root.AppendChild(header);
        XmlNode html = doc.CreateElement("html");
        html.AppendChild(doc.CreateCDataSection("<b>abc</b>"));
        root.AppendChild(html);
        doc.Save(Console.Out);
        Console.WriteLine();
    }
}

som outputter:

<?xml version="1.0" encoding="IBM437"?>
<mydoc>
  <header>eksempel</header>
  <html><![CDATA[<b>abc</b>]]></html>
</mydoc>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester