【发布时间】:2017-02-03 13:56:17
【问题描述】:
我在我的项目中将一个 idml 文件转换为一个 xml。我有一个关于额外 xml 声明的问题。 这是idml文件的一部分:`
<Content> <?xml version="1.0" encoding="UTF-16"
standalone="yes"?>
<math>
</math></Content>
` 这是我转换后得到的输出:
<?xml version="1.0" encoding="UTF-8"?>
<content>
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<math></math>
</content>
我的任务是用 替换 &lt; 和 &gt;,然后我遇到了这个问题..
我尝试了很多方法来做到这一点(不是标准的东西)..最后我尝试用空格替换 word xml 替换并将其转换为 PI 并在后处理模式下转换 PI..但它也没有成功
<xsl:template match="Content">
<xsl:if test=".[contains(text(),'math')]">
<xsl:value-of select="replace(./text(),'xml','')”/>
</xsl:if>
</xsl:template>
我要生成的输出:
<?xml version="1.0" encoding="UTF-8"?> <content><math></math></content>
我正在使用 Saxon 9.7.0HE 进行开发。
请帮我解决这个问题..谢谢..!
【问题讨论】:
-
您到底使用哪个 XSLT 2.0 处理器?您要为您发布的输入创建什么输出?
-
@Martin 我想生成如下输出:
和我在开发中使用 saxon 9.. -
请编辑问题并将您想要的输出显示为代码 sn-p。至于 Saxon 9,究竟是哪个版本?例如,Saxon 9.7 支持
parse-xml,早期的商业版本支持类似的扩展功能,这样您可以将Content元素的内容解析为 XML 并输出节点,您将摆脱嵌套,以干净的方式转义 XML 声明。 -
@Martin 我道歉..编辑了这个问题..我对 parse-xml 没有明确的想法..正在搜索一些文档..