【发布时间】:2015-10-05 10:46:36
【问题描述】:
我有一个xml文档(这个xml格式不正确)如下
<ads>
<adv>
<a>BURGER & BROWN ENGINEERING</a>
<b>123*3491</b>
<adv>
<adv>
<x>Roster Service</x>
<y>BROWN & BURGER ENGINEERING</y>
<z>905*3490</z>
<adv>
<ads>
我想要一个 XSLT 来将 XML 转换成这个。
i) 和号(&) 应替换为 " 和 "
ii) * 应替换为 " "
<ads>
<adv>
<a>BURGER and BROWN ENGINEERING</a>
<b>123 3491</b>
<adv>
<adv>
<x>Roster Service</x>
<y>BROWN and BURGER ENGINEERING</y>
<z>905 3490</z>
<adv>
<ads>
我有一个如下的xsl,但这不能满足我的要求。
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="translate(., '&', ' and ')" />
<xsl:value-of select="translate(., '*', ' ')" />
</xsl:template>
【问题讨论】:
-
您显示的是您的输入不是 XML 文档;您不能在 XML 中使用未转义的 & 符号。
-
@michael.hor257k - 我正在通过以下一些过程获取 xml 文档。纠正它是我的责任。这肯定是错误的xml。我该怎么做
-
如果您的输入确实是这样,那么在 XSLT 中您几乎无法使用它。
-
当有人说“这个 xml 格式不正确”时,这与说“这不是 XML”是一样的。如果不是 XML,那么 XSLT 就无法处理。