Използвам JSoup за анализ на HTML. Като цяло работи добре, но в някои изрични примери променя последователността на елементите в HTML след анализиране. Ето простия код:
String str1 = originalHtmlFragment;
Document doc = Jsoup.parseBodyFragment(str1);
String str2 = doc.html();
Ето стойностите на str1 и str2.
str1:
<table>
<tbody>
<tr>
<th>
<p> </p>
<p>10</p>
</th>
</tr>
<tr>
<td colspan="1">
<p>
<ac:macro ac:name="my-macro">
<ac:parameter ac:name="outer-values">Page content</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<p>a1</p>
</ac:rich-text-body>
</ac:macro>
</p>
</td>
</tr>
</tbody>
</table>
str2:
<html>
<head></head>
<body>
<table>
<tbody>
<tr>
<th>
<p> </p>
<p>10</p>
</th>
</tr>
<tr>
<td colspan="1">
<p>
<ac:macro ac:name="my-macro">
<ac:parameter ac:name="outer-values">Page content</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body></ac:rich-text-body>
</ac:macro>
</p>
<p>a1</p>
<p>
</p>
</td>
</tr>
</tbody>
</table>
</body>
</html>
Обърнете внимание, че a1 е извън тага ac:macro във втория пример за код. Как мога да заобиколя това в JSoup?