При попытке вызвать setTextContent() со строкой, содержащей < или > в итоговый файл записывается < или &rt. Что делать, и как записать эти знаки в содержимое элемента?
Как я уже писал в комментарии, в соответствии со стандартом, символ < должен встречаться только в начале тега, а символ > в конце, во всех других случаях они должны быть преобразованы в escape-последовательности < и >. Появление этих символов в неэкранированном виде на месте текстовых узлов сделает документ невалидным и, скорее всего, сломает его отображение в бразуерах. Единственное исключение - это текстовые узлы обёрнутые в секцию CDATA:
someNode.appendChild(doc.createCDATASection("<>"));
Но, на сколько я понял, такой вариант вас тоже не устроит. Возможно, вас интересует что-то такое:
Node disableEscaping = doc.createProcessingInstruction(StreamResult.PI_DISABLE_OUTPUT_ESCAPING, "<>");
Node enableEscaping = doc.createProcessingInstruction(StreamResult.PI_ENABLE_OUTPUT_ESCAPING, "<>");
someNode.appendChild(disableEscaping);
someNode.setTextContent("> <");
someNode.appendChild(enableEscaping);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей