2012-11-03 43 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