Я использую JSoup для разбора HTML. Обычно он работает нормально, но в некоторых явных примерах он меняет последовательность элементов в HTML после синтаксического анализа. Вот простой код:
String str1 = originalHtmlFragment;
Document doc = Jsoup.parseBodyFragment(str1);
String str2 = doc.html();
Вот значения str1 и str2.
стр1:
<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>
ул2:
<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?