编写 XSL 对 xml 数据执行一些操作

发布于 2024-11-04 20:42:33 字数 1179 浏览 0 评论 0原文

如何在 products.xsl 正文中编写 xsl,以获取数量 > 的产品名称和条件10 个

产品.xml:

<?xml version="1.0" encoding="iso-8859-1"?>
<products>
    <product>
        <name>soaps</name>
        <quantity>10</quantity>
        <condition>ready</condition>
    </product>
    <product>
        <name>soaps</name>
        <quantity>15</quantity>
        <condition>ready</condition>
    </product>
    <product>
        <name>soaps</name>
        <quantity>20</quantity>
        <condition>ready</condition>
    </product>
</products>

产品.xsl

<?xml version="1.0"?><!-- DWXMLSource="products.xml" -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE> products</TITLE>
</HEAD>
<BODY>

products quantity greater than 10 : <BR/>


</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>

How to write xsl in the body of products.xsl that will get product name and condition with quantity > 10

products.xml:

<?xml version="1.0" encoding="iso-8859-1"?>
<products>
    <product>
        <name>soaps</name>
        <quantity>10</quantity>
        <condition>ready</condition>
    </product>
    <product>
        <name>soaps</name>
        <quantity>15</quantity>
        <condition>ready</condition>
    </product>
    <product>
        <name>soaps</name>
        <quantity>20</quantity>
        <condition>ready</condition>
    </product>
</products>

products.xsl

<?xml version="1.0"?><!-- DWXMLSource="products.xml" -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE> products</TITLE>
</HEAD>
<BODY>

products quantity greater than 10 : <BR/>


</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>

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

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

发布评论

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

评论(3

娇俏 2024-11-11 20:42:33

这应该可以解决问题:

<xsl:for-each select="/products/product">
  <xsl:if test="quantity > 10">
    <xsl:value-of select="name" />: <xsl:value-of select="condition" /> <br/>
  </xsl:if>
</xsl:for-each>

This should do the trick:

<xsl:for-each select="/products/product">
  <xsl:if test="quantity > 10">
    <xsl:value-of select="name" />: <xsl:value-of select="condition" /> <br/>
  </xsl:if>
</xsl:for-each>
与酒说心事 2024-11-11 20:42:33

这应该有效:(如果提供了格式良好的 XML – 请参阅问题评论)

<BODY> products quantity greater than 10 : <BR/>
    <xsl:apply-templates select="//product[quantity > 10]"/>
</BODY>

结合例如此模板:

<xsl:template match="product">
    <P>
        <xsl:value-of select="name"/>
        <xsl:text>: </xsl:text>
        <xsl:value-of select="condition"/>
    </P>
</xsl:template>

只需根据您的需求进行自定义...

This should work: (if provided with a well-formed XML – see comment on question)

<BODY> products quantity greater than 10 : <BR/>
    <xsl:apply-templates select="//product[quantity > 10]"/>
</BODY>

Combined with e.g. this template:

<xsl:template match="product">
    <P>
        <xsl:value-of select="name"/>
        <xsl:text>: </xsl:text>
        <xsl:value-of select="condition"/>
    </P>
</xsl:template>

Just customize per your needs…

不知所踪 2024-11-11 20:42:33

此转换(无 且无条件指令):

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

 <xsl:template match="product[quantity > 10]">
  <p>
    Product: <xsl:value-of select="name"/>
    contition: <xsl:value-of select="condition"/>
    quantity: <xsl:value-of select="quantity"/>
  </p>
 </xsl:template>

 <xsl:template match="product"/>
</xsl:stylesheet>

应用于提供的 XML 文档时:

<products>
    <product>
        <name>soaps</name>
        <quantity>10</quantity>
        <condition>ready</condition>
    </product>
    <product>
        <name>soaps</name>
        <quantity>15</quantity>
        <condition>ready</condition>
    </product>
    <product>
        <name>soaps</name>
        <quantity>20</quantity>
        <condition>ready</condition>
    </product>
</products>

产生想要的结果

<p>
    Product: soaps
    contition: ready
    quantity: 15</p>
<p>
    Product: soaps
    contition: ready
    quantity: 20</p>

This transformation (no <xsl:for-each> and no conditional instructions):

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

 <xsl:template match="product[quantity > 10]">
  <p>
    Product: <xsl:value-of select="name"/>
    contition: <xsl:value-of select="condition"/>
    quantity: <xsl:value-of select="quantity"/>
  </p>
 </xsl:template>

 <xsl:template match="product"/>
</xsl:stylesheet>

when applied on the provided XML document:

<products>
    <product>
        <name>soaps</name>
        <quantity>10</quantity>
        <condition>ready</condition>
    </product>
    <product>
        <name>soaps</name>
        <quantity>15</quantity>
        <condition>ready</condition>
    </product>
    <product>
        <name>soaps</name>
        <quantity>20</quantity>
        <condition>ready</condition>
    </product>
</products>

produces the wanted result:

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