Мне нужно постобработать некоторый HTML с плохой структурой - например,
<html>
<body>...</body>
<body>...</body>
</html>
Как лучше всего преобразовать этот HTML-код, чтобы содержимое второго тела отображалось внутри первого, кроме, конечно, дополнительного тега тела? Я не хочу манипулировать чем-либо еще с этим правилом.
Я думал о сопоставлении тега html и обработке его оттуда с помощью явных вызовов apply-templates, но мне это кажется немного неаккуратным. Я знаю, как сопоставить паразитные тела («body [position ()> 1]»)), но мне хотелось бы получить несколько идей о том, как лучше всего написать преобразование.
Редактировать: мне нужно применить другие шаблоны к дочерним элементам всех этих элементов, поэтому простая копия не будет работать.
И я хотел бы сохранить комментарии и инструкции по обработке. Я хочу в значительной степени весь документ как преобразование личности, за исключением этих нескольких тел и некоторых других незначительных правок, которые я уже делаю успешно.
Редактировать 2: важно сохранить дочерние элементы второго элемента тела в приведенном выше примере. Они должны быть потомками первого тега body в выходных данных, в конце дочерних узлов первого тега body.
Редактировать 3: Вот некоторые иллюстративные ввод / вывод (не проверены на достоверность):
<html>
<!-- Look at my comments -->
<head>
<title>My title!</title>
<!-- Commentary -->
</head>
<body>
<p>Something <b>bold</b></p>
</body>
<body>
<!-- heh -->
<p>Some bozo put my parent in here.</p>
</body>
<body>
<p>More stuff here</p>
</body>
</html>
должно быть:
<html>
<!-- Look at my comments -->
<head>
<title>My title!</title>
<!-- Commentary -->
</head>
<body>
<p>Something <b>bold</b></p>
<!-- heh -->
<p>Some bozo put my parent in here.</p>
<p>More stuff here</p>
</body>
</html>