我正在使用的是xml。问题是,当我应用变换时,结果包含额外的字符,我不知道为什么
这是我的xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/Test/XsltModelo.xslt"?>
<nyfile>
<HourNow>20140820230732</HourNow>
<Customer>
<ReportType>102,0x00000066</ReportType>
<BusinessDate>20140820</BusinessDate>
<Mix>
<ProductName>noname</ProductName>
<FamilyGroup>6</FamilyGroup>
</Mix>
</Customer>
</nyfile>
它是xslt
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions"
exclude-result-prefixes="xs fn">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<Items>
<xsl:apply-templates/>
</Items>
</xsl:template>
<xsl:template match="Mix">
<item>
<BusinessDate><xsl:value-of select="../BusinessDate" /></BusinessDate>
<ProductName><xsl:value-of select="ProductName" /></ProductName>
</item>
</xsl:template>
</xsl:stylesheet>
申请转化后
xml结果包含额外的字符20140820230732102,0x0000006620140820, 有人可以展示光明吗?
<?xml version="1.0" encoding="UTF-8"?>
<Items>20140820230732102,0x0000006620140820
<item>
<BusinessDate>20140820</BusinessDate>
<ProductName>noname</ProductName>
</item>
答案 0 :(得分:0)
您只为Mix
元素定义了一个模板,但是您正在将模板应用于nyfile
向下的所有内容。因此,除了Mix
之外的所有内容都将由默认模板规则处理,这些规则会对元素进行递归,但只输出文本节点。
如果您只想处理Mix
部分,只需选择:
<xsl:template match="/">
<Items>
<xsl:apply-templates select="nyfile/Customer/Mix"/>
</Items>
</xsl:template>