XML 到 HTML:输出文字子节点

发布于 2024-10-30 22:35:38 字数 3229 浏览 5 评论 0原文

最有效的 XSL 是什么

<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>

将此 XML 转换为此 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>

:我在使用 时遇到问题显示flashtext的文字子节点(标签和文本)。

Whats the most effcient XSL for transforming this 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>

to this 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>

I'm having trouble using <xsl:value-of> or <xsl:copy> to display the literal child nodes (tag and text) of flashtext.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝海似她心 2024-11-06 22:35:38

以下样式表:

<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 节点下的所有元素。这适用于您的输入,但如果您不想复制 matflashflashtext 上方或下方的元素,则需要进行调整。一如既往,不同的要求会导致不同的解决方案。

编辑:经过深思熟虑,如果您只想复制 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>

...产生相同的输出。

The following stylesheet:

<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>

Produces the following result when applied to your source document:

<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>

Note the use of the identity transform to copy through all elements below the flashtext nodes. This works with your input, but would need to be adjusted if you had elements above or below matflash and flashtext that you did not want to copy through. As always, different requirements result in different solutions.

Edit: Upon reflection, if you just want to copy everything below the flashtext and have something that still works in a larger document, then the standard identity transform template can be replaced with a single 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>

...which produces the same output.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文