2014-02-26 33 views
0

我正面臨JSoup將內聯樣式移動到頭標籤的問題。例如。以下內容:如何防止JSoup重新定位內聯樣式?

<style>.foo { background: url(/path1/img.jpg); }</style> 

解析之後被轉換成以下文件:

<html> 
<head> 
    <style>.foo { background: url(/path1/img.jpg); }</style> 
</head> 
<body></body> 
</html> 

這個搬遷斷裂應用程式邏輯處理的風格標籤內的非標準標籤的處理。我認爲,同樣的重定位會發生在內聯腳本標籤上。

有沒有辦法禁用這種重新定位?

回答

1

假設您使用HTML4,<style>標記應該位於<head>標記中,但仍然可以使用。檢查DTD,因爲將它放在其他地方通常是不好的做法。如果您使用HTML5,則可以使用<style scoped>標籤,該標籤允許您將它放在您身體所需的任何位置。

如果您不是源代碼的所有者,下面的解決方案將爲您工作。

您可以使用Jsoup XmlParser而不是常規的HtmlParser,它將在不知道標記的情況下解析文檔,而是按原樣解析它。

Document doc = Jsoup.parse(html, "", Parser.xmlParser()); 

將呈現您的Document html,就像源代碼一樣。