XML Pretty Printer 缺少 2 个关键边缘案例

发布于 2024-08-28 21:38:15 字数 822 浏览 9 评论 0 原文

使用在 此 xslt 文件。 wordpress.com/2009/09/29/pretty-printing-xhtml-with-nokogiri-and-xslt/" rel="nofollow noreferrer">此博客 使用 Nokogiri 漂亮地打印 xml,一切几乎 可以工作,但是我无法将它用于 HTML。

首先,如果一个节点为空,它会将其变成一个自关闭节点,因此:

<textarea></textarea>

被转换为

<textarea/>

但这在渲染时会弄乱 html 树。

其次,如果节点只有文本,则文本不带选项卡,并且关闭节点也不带选项卡,因此:

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

变为:

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

...但理想情况下是:

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

XSLT 专业人士是否知道对此的快速解决方法?

Using this xslt file found on this blog to pretty print xml using Nokogiri, everything almost works, but to the point where I can't use it for HTML.

First, if a node is empty, it turns it into a self closing node, so:

<textarea></textarea>

gets converted to

<textarea/>

But that messes up the html tree when rendered.

Second, if the node just has text, the text isn't tabbed, and the closing node isn't tabbed, so:

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

becomes:

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

...but it would ideally be:

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

Does anyone who's pro at XSLT know a quick fix for this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖心男生 2024-09-04 21:38:15

修改 xsl:output 元素以指示您需要 HTML 输出和缩进:

<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>

Modify the xsl:output element to indicate you want HTML output and indenting:

<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
爱本泡沫多脆弱 2024-09-04 21:38:15

如果您只是想漂亮地打印输出而不关心 XSL 提供的任何进一步转换,那么只需使用 http:// /prettydiff.com/?m=beautify

您还可以使用 HTML 参数 http:// /prettydiff.com/?m=beautify&html 将某些标签视为单例,即使它们看起来像开始标签,例如
而不是

If you are only trying to pretty-print output and not concerned with any further transformations offered by XSL then just use http://prettydiff.com/?m=beautify

You can also use a parameter for HTML http://prettydiff.com/?m=beautify&html that treats certain tags as singletons even though they look like opening tags, such as <br> instead of <br/>.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文