2012-11-03 48 views
-1

我试图HTML转换成XML,但HTML标记属性的双引号也不行
所以当它转换为XML给了我错误 凭什么我双引号加所有我的XML文件, 我用vb.net Windows窗体应用程序周围所有的HTML标记属性插入双引号

+0

可否请您提供一个小例子,告诉哪些行不通 –

+0

另外,html!= xml。你想实现什么,可能会有更好的结果 – Steve

+0

对不起,html实际上像XML结构结构一样只有标签属性值的问题,例如

    anchor content
这是在html中,当我将它转换为xml我得到这个
    what
没有在xml文件 –

回答

0

转换的htmlxml work..There各种角落情况下,你的htmlxml转换可能失败

到HTML转换成XML的最好办法是:

1>摘自html使用的解析器相关数据,如htmlagilitypack

2>使用各种XML API的像XmlWriterLinq2Xml存储这些提取的数据为xml

+0

遗憾的HTML实际结构相同,如XML结构中的问题只能用标签的属性值双引号例如

    anchor content
这是HTML属性值,当我将其转换为xml我得到这个
    what
没有任何uble引号,它给我错误为xml文件 –

0

我不知道你用什么方法转换。你说什么都没有。不过,显然这是核心问题。也许你也打算一旦将html转换为xml,你打算做什么?

说实话,鉴于HTML 已经xml(格式良好的html至少),不需要转换。简单地加载你的HTML在XDocument例如...就是这样。没什么特别的。

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格式,且回报将文档XmlDocument的格式。 您的frame =全部来自html将变成frame =“all”。

+0

另外,如果你想清除一些你的html字符串代码,只需使用正则表达式。例如,你可能不想要style属性:pattern = @“style ='\ b [^'] *'”; html = Regex.Replace(html,pattern,string.Empty,RegexOptions.IgnoreCase); – Kinder