变革&在XSLT?

时间:2010-10-20 19:41:24

标签: xml xslt xslt-2.0

我对XSLT比较陌生。我遇到过一个我不知道如何解决的问题。我有一个非常大的XML文档,我试图将其转换为另一个较小的,精炼的XML文档。

大型XML文档具有以下样式:

 <Property>
  <name>Document name</name>
  <value>SomeValue</value>   
 </Property>
...
 <Property>
  <name>Document Title</name>
  <value>Me %amp; you</value>   
 </Property>

如何在值元素之间转换值并保留“&amp; amp”;完整。显然,转换此XML会导致文本中的&符号转义错误。

注意:这个大型XML是由从服务器提取数据的应用程序生成的。所以我有点难以处理逃生&符号:(

1 个答案:

答案 0 :(得分:1)

以下是使用身份规则的简单(非常基本)示例:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="node()|@*">
  <xsl:copy>
   <xsl:apply-templates select="node()|@*"/>
  </xsl:copy>
 </xsl:template>
</xsl:stylesheet>

在提供的XML文件上应用此转换时

<t>
 <Property>
  <name>Document name</name>
  <value>SomeValue</value>
 </Property>
...
 <Property>
  <name>Document Title</name>
  <value>Me &amp; you</value>
 </Property>
</t>

它被转化为自身(身份):

<t>
   <Property>
      <name>Document name</name>
      <value>SomeValue</value>
   </Property>
...
 <Property>
      <name>Document Title</name>
      <value>Me &amp; you</value>
   </Property>
</t>

并保留字符&amp;