什么是最有效的XSL来转换这个XML:
<matflash label="popup" btn-label="Interview Transcript">
<flashtext><a href="/education/resources/students/video_cases/protected/ece/product/media/508_Guidance_Transcript.doc">Download Transcript</a></flashtext>
<flashtext class="H1">Linda Rudolph - Teacher</flashtext>
<flashtext class="H1">Little Sprouts, Methuen School</flashtext>
<flashtext><b>Interviewer:</b> Linda, could you start by describing to me what you think the basis of a well-managed classroom is. Describe in your own words, what you think the basis of a well managed classroom is? What helps you get there?</flashtext>
<flashtext><b>Linda:</b> I think just having a well managed classroom is just having good expectations so that for the children, that they know their limits, what is expected of them, what is just being able to tell them, "Okay, this is what we're doing today.", and then just set it up for them and then they know they can accomplish it, just not having any mixed messages for them.</flashtext>
<flashtext><b>Linda:</b> Having a well managed classroom is just having a really good curriculum that the teacher's can follow and teach the children so that they're interested and they know exactly what's expected of them and then the management comes from them just knowing what's expected of them, just setting up classroom rules and everybody being able to follow them and knowing what's expected.</flashtext>
...
</matflash>
到这个HTML:
<div id="interview">
<div><a href="/education/resources/students/video_cases/protected/ece/product/media/508_Guidance_Transcript.doc">Download Transcript</a></div>
<div class="H1">Linda Rudolph - Teacher</div>
<div class="H1">Little Sprouts, Methuen School</div>
<div><b>Interviewer:</b> Linda, could you start by describing to me what you think the basis of a well-managed classroom is. Describe in your own words, what you think the basis of a well managed classroom is? What helps you get there?</div>
<div><b>Linda:</b> I think just having a well managed classroom is just having good expectations so that for the children, that they know their limits, what is expected of them, what is just being able to tell them, "Okay, this is what we're doing today.", and then just set it up for them and then they know they can accomplish it, just not having any mixed messages for them.</div>
<div><b>Linda:</b> Having a well managed classroom is just having a really good curriculum that the teacher's can follow and teach the children so that they're interested and they know exactly what's expected of them and then the management comes from them just knowing what's expected of them, just setting up classroom rules and everybody being able to follow them and knowing what's expected.</div>
...
</div>
我无法使用<xsl:value-of>
或<xsl:copy>
来显示flashtext的文字子节点(标记和文本)。
答案 0 :(得分:3)
以下样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="matflash">
<div id="interview">
<xsl:apply-templates />
</div>
</xsl:template>
<xsl:template match="flashtext">
<div>
<xsl:apply-templates select="@*|node()" />
</div>
</xsl:template>
</xsl:stylesheet>
应用于源文档时生成以下结果:
<div id="interview">
<div>
<a href="/education/resources/students/video_cases/protected/ece/product/media/508_Guidance_Transcript.doc">Download Transcript</a>
</div>
<div class="H1">Linda Rudolph - Teacher</div>
<div class="H1">Little Sprouts, Methuen School</div>
<div>
<b>Interviewer:</b>
Linda, could you start by describing to me what you think the basis of
a well-managed classroom is. Describe in your own words, what you
think the basis of a well managed classroom is? What helps you get
there?
</div>
<div>
<b>Linda:</b>
I think just having a well managed classroom is just having good
expectations so that for the children, that they know their limits,
what is expected of them, what is just being able to tell them, "Okay,
this is what we're doing today.", and then just set it up for them and
then they know they can accomplish it, just not having any mixed
messages for them.
</div>
<div>
<b>Linda:</b>
Having a well managed classroom is just having a really good
curriculum that the teacher's can follow and teach the children so
that they're interested and they know exactly what's expected of them
and then the management comes from them just knowing what's expected
of them, just setting up classroom rules and everybody being able to
follow them and knowing what's expected.
</div>
</div>
请注意使用身份转换来复制flashtext
节点下的所有元素。这适用于您的输入,但如果您有不希望复制的matflash
和flashtext
之上或之下的元素,则需要进行调整。与往常一样,不同的要求会产生不同的解决方案。
编辑:经过反思,如果您只想复制flashtext
下面的所有内容,并且在较大的文档中仍有效,那么标准的身份转换模板可以替换为一个copy-of
:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="matflash">
<div id="interview"><xsl:apply-templates /></div>
</xsl:template>
<xsl:template match="flashtext">
<div><xsl:copy-of select="@*|node()" /></div>
</xsl:template>
</xsl:stylesheet>
...产生相同的输出。