XSLT:使用封闭标记传输xml
问题描述:
我正在使用XSLT将XML转换为其他格式的XML。如果元素有空的数据,它将显示为自动关闭,例如。 <data />
,但我想输出它与像这样的结束标记<data></data>
。XSLT:使用封闭标记传输xml
如果我将输出方法从“xml”更改为“html”,那么我可以得到<data></data>
,但我将丢失文档顶部的<?xml version="1.0" encoding="UTF-8"?>
。这是做这件事的正确方法吗?
非常感谢。
陈道明
答
如果你想要这样做,因为你认为自闭标签很丑,那就克服它吧。
如果你想通过输出到一些不符合标准的XML解析器,在控制之下,然后用更好的解析器,或修复您正在使用的一个。
如果它超出了你的控制范围,并且你必须将它发送给XML解析器,那么你是否真的需要序言?如果没有,那么html输出方法是好的。
如果你确实需要的XML序言,那么你可以使用HTML输出方法,并在前面加上序言改造后,但它发送到不足解析器之前。
或者,您可以输出它,因为它与某种自定义序列发送到你的缺陷解析器使用DOM之前XML自动关闭的标签,和预处理。如果它不能处理自闭标签,那么我相信这不是解析XML失败的唯一方法。例如,您可能需要对命名空间进行一些操作。
您可以尝试向您输出的任何空白元素添加空文本节点。这可能会诀窍。
答
自我封闭,明确关闭元素完全一样的东西以任何方面。
只有当你沿着加工链某处有是不支持XML(代码,做XML处理与正则表达式,例如)的工具,它可能会有所作为。在这一点上你应该考虑改变那的一部分处理,而不是XML的生成/序列化部分。
你有这个理由吗? – 2010-01-07 16:43:55
要求确保它们是封闭标签和有效的XML文件,如文档顶部的和。 – 2010-01-07 16:51:10
不,问题是:是否有*理由*你想这样做? – Tomalak 2010-01-07 17:01:23