在所有html标记属性周围插入双引号

时间:2012-11-03 06:29:28

标签: c# xml vb.net

我正在尝试将html转换为xml,但html标记属性的双引号不起作用
所以当它转换为xml时给我错误 那么如何将双引号添加到我的xml文件中, 我正在使用vb.net windows表单应用程序

3 个答案:

答案 0 :(得分:0)

html转换为xml工作。在htmlxml转化可能失败

将html转换为xml的最佳方法是:

1>使用htmlagilitypack

等解析器从html中提取相关数据

2>使用XmlWriterLinq2Xml等各种xml api将这些提取的数据存储到xml

答案 1 :(得分:0)

我想知道你用什么方法转换。你什么都不说。然而,显然这种方法是核心问题。也许还有你计划在html转换成xml后做什么?

说实话,不需要转换,因为html 已经是xml(至少是格式良好的html)。只需将您的html加载到XDocument例如......就可以了。没什么特别的。

答案 2 :(得分:0)

请试试这个:

  • 从nuget安装SgmlReader
  • 如果你有一个像下面这样的字符串变量,你将不得不将它转换为TextReader对象。

现在我们将使用已安装的软件包。

static XmlDocument HTMLTEST()
        {
            string html = "<table frame=all><tgroup></tgroup></table>";
            TextReader reader = new StringReader(html);

            Sgml.SgmlReader sgmlReader = new Sgml.SgmlReader();
            sgmlReader.DocType = "HTML";
            sgmlReader.WhitespaceHandling = System.Xml.WhitespaceHandling.All;
            sgmlReader.InputStream = reader;

            XmlDocument doc = new XmlDocument();
            doc.PreserveWhitespace = true;  //false if you dont want whitespace
            doc.XmlResolver = null;

            doc.Load(sgmlReader);

            return doc;
        }

输入是字符串html格式,返回将是doc XmlDocument格式。 你的frame = all from html将成为frame =“all”。