javax Transformer сохраняет выходящую сущность - PullRequest
0 голосов
/ 26 мая 2011

Я, наконец, отказался от преобразования xslt после неудачи нескольких попыток (если вам интересно, вы можете проверить мой вопрос здесь: не хотите, чтобы xslt интерпретировал символы сущности ). И сейчас я работаю над javax Transformer, пытаясь решить эту проблему.

Проблема в том, что я хотел бы сохранить экранирование апострофом в XML и HTML:

< cell i='0' j='0' vi='0' parity='Odd' subType='-1'> &#34;String&#39;</cell> 

вывод - это то, что я не хочу:

    < td nowrap="true" class="gridCell" i="0" j="0">"String'< /td>

Я бы хотел получить следующий результат:

    < td nowrap="true" class="gridCell" i="0" j="0">&#34;String&#39;< /td>

Я не знаю, могли бы мы использовать для этого метод transform, и я вижу похожий вопрос, но ему нужна противоположная вещь: Как предотвратить преобразование javax-преобразователя в выходящие пробелы?

Я ценю любую помощь от вас, спасибо!

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Строго говоря, для синтаксического анализатора XML нет разницы между ', &#39;, &#x27 или &apos; в текстовом узле. В атрибуте это немного отличается, учитывая, что значение должно быть заключеномежду " или ';если вы вложили значение атрибута в ', вы ДОЛЖНЫ использовать сущность, чтобы указать апостроф в значении, и XML-сериализатор сделает то же самое.

Я немного устал от обработки XMLв Java, но я знаю, что в C # ваше преобразование может сгенерировать объект документа XML и создать класс, который наследует класс XmlWriter для его сериализации, как вы пожелаете, путем переопределения метода WriteString.Надеемся, что в Java вы можете сделать нечто подобное, возможно, реализовав интерфейс Result или, возможно, передав DOMResult, с которым вы можете работать.Я не могу вспомнить, как вы обычно сериализуете Document в Java, но это должно быть то, что вы можете манипулировать или переопределять.

1 голос
/ 26 мая 2011

XML определяет &apos; и ', чтобы обозначать одно и то же, поэтому большинство инструментов XML будут рассматривать это различие как несущественное. Я думаю, вы должны поставить под сомнение требование - почему вы пытаетесь это сделать? Это немного похоже на попытку сохранить пробелы вокруг знака "=" в атрибуте: это бессмысленно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...