Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以重复使用具有唯一XML内容的XSL模板吗?_Xml_Xslt - Fatal编程技术网

我可以重复使用具有唯一XML内容的XSL模板吗?

我可以重复使用具有唯一XML内容的XSL模板吗?,xml,xslt,Xml,Xslt,也许有更好的方式来描述我的问题 下面是我想做的一个例子: 拿这个来说: <inc_3c> <Title>This is 3C</Title> <Subtitle>Lorem ipsum dolor consectetur adipiscing elit. Fusce mattis consequat malesuada.</Subtitle> <Description>Consectetur adip

也许有更好的方式来描述我的问题

下面是我想做的一个例子:

拿这个来说:

<inc_3c>
    <Title>This is 3C</Title>
    <Subtitle>Lorem ipsum dolor consectetur adipiscing elit. Fusce mattis consequat malesuada.</Subtitle>
    <Description>Consectetur adipiscing elit. Fusce mattis consequat malesuada. Nullam vel justo a dui pellentesque euismod. Integer eu pulvinar dolor.</Description>
    <Class>priceWrapper</Class>
    <Price>$00.00</Price>
    <Url>Url</Url>
    <Image>apple-tv.png</Image>
</inc_3c>

这是3C
我是一位杰出的女性。Fusce mattis consequat malesuada。
献祭精英。Fusce mattis consequat malesuada。这是一次酒后驾车。整型eu pulvinar dolor。
价格包装
$00.00
网址
apple-tv.png
然后像这样复制它:

<inc_3c-copy>
    <Title>This is 3C</Title>
    <Subtitle>Lorem ipsum dolor consectetur adipiscing elit. Fusce mattis consequat malesuada.</Subtitle>
    <Description>Consectetur adipiscing elit. Fusce mattis consequat malesuada. Nullam vel justo a dui pellentesque euismod. Integer eu pulvinar dolor.</Description>
    <Class>priceWrapper</Class>
    <Price>$00.00</Price>
    <Url>Url</Url>
    <Image>apple-tv.png</Image>
</inc_3c-copy>

这是3C
我是一位杰出的女性。Fusce mattis consequat malesuada。
献祭精英。Fusce mattis consequat malesuada。这是一次酒后驾车。整型eu pulvinar dolor。
价格包装
$00.00
网址
apple-tv.png
  • inc_3c=将填充第1页上的内容
  • inc_3c-copy=将填充第2页上的内容
甚至可能是inc_3c和inc_3c-copy在同一页面上的场景

希望我不需要再创建一个XSL页面


这必须是非编码证明。

了解如何使用和重写。这是最基本和最强大的XSLT设计模式

在您的情况下,我们使用此设计模式以以下方式仅覆盖顶部元素:

<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="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="/inc_3c">
  <inc_3c-copy>
   <xsl:apply-templates/>
  </inc_3c-copy>
 </xsl:template>
</xsl:stylesheet>

应用于提供的XML文档时:

<inc_3c>
    <Title>This is 3C</Title>
    <Subtitle>Lorem ipsum dolor consectetur adipiscing elit. Fusce mattis consequat malesuada.</Subtitle>
    <Description>Consectetur adipiscing elit. Fusce mattis consequat malesuada. Nullam vel justo a dui pellentesque euismod. Integer eu pulvinar dolor.</Description>
    <Class>priceWrapper</Class>
    <Price>$00.00</Price>
    <Url>Url</Url>
    <Image>apple-tv.png</Image>
</inc_3c>

这是3C
我是一位杰出的女性。Fusce mattis consequat malesuada。
献祭精英。Fusce mattis consequat malesuada。这是一次酒后驾车。整型eu pulvinar dolor。
价格包装
$00.00
网址
apple-tv.png
生成所需的正确结果

<inc_3c-copy>
   <Title>This is 3C</Title>
   <Subtitle>Lorem ipsum dolor consectetur adipiscing elit. Fusce mattis consequat malesuada.</Subtitle>
   <Description>Consectetur adipiscing elit. Fusce mattis consequat malesuada. Nullam vel justo a dui pellentesque euismod. Integer eu pulvinar dolor.</Description>
   <Class>priceWrapper</Class>
   <Price>$00.00</Price>
   <Url>Url</Url>
   <Image>apple-tv.png</Image>
</inc_3c-copy>

这是3C
我是一位杰出的女性。Fusce mattis consequat malesuada。
献祭精英。Fusce mattis consequat malesuada。这是一次酒后驾车。整型eu pulvinar dolor。
价格包装
$00.00
网址
apple-tv.png

问得好,+1。请参阅我的答案,以获得一个基于最基本和功能最强大的XSLT设计模式的完整、非常简短和简单的解决方案——重写标识规则。谢谢Dimitre,我将尝试一下。我很快就会表扬你的!