XML-принтер отсутствует в двух ключевых случаях - PullRequest
0 голосов
/ 12 апреля 2010

Используя этот xslt-файл , найденный в этом блоге , чтобы красиво печатать xml с помощью Nokogiri, все почти работает, но до такой степени, что я не могу использовать это для HTML.

Во-первых, если узел пуст, он превращает его в самозакрывающийся узел, поэтому:

<textarea></textarea>

конвертируется в

<textarea/>

Но это портит дерево HTML при рендеринге.

Во-вторых, если на узле просто есть текст, текст не вкладывается, а закрывающий узел не вкладывается, поэтому:

<li>
 <label>some text</label>
</li>

становится:

<li>
 <label>some text
</label>
</li>

... но в идеале это будет:

<li>
 <label>
  some text
 </label>
</li>

Кто-нибудь, кто профессионал в XSLT, знает быстрое решение для этого?

Ответы [ 2 ]

2 голосов
/ 12 апреля 2010

Измените элемент xsl:output, чтобы указать, что вы хотите вывод HTML и отступ:

<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
1 голос
/ 26 ноября 2011

Если вы пытаетесь печатать только вывод и не заинтересованы в каких-либо дальнейших преобразованиях, предлагаемых XSL, просто используйте http://prettydiff.com/?m=beautify

Вы также можете использовать параметр для HTML http://prettydiff.com/?m=beautify&html, который обрабатывает определенные теги как одиночные, даже если они выглядят как открывающие теги, например
вместо
.

...