标签: xslt

XPath可以只返回具有X子节点的节点吗?

是否可以使用XPath仅选择具有特定子元素的节点?例如,从这个XML我只想要宠物中有'bar'子元素的元素.因此,结果数据集将包含此示例中的lizardpig元素:

<pets>
  <cat>
    <foo>don't care about this</foo>
  </cat>
  <dog>
   <foo>not this one either</foo>
  </dog>
  <lizard>
   <bar>lizard should be returned, because it has a child of bar</bar>
  </lizard>
  <pig>
   <bar>return pig, too</bar>
  </pig>
</pets>
Run Code Online (Sandbox Code Playgroud)

这个Xpath给了我所有的宠物:"/pets/*",但我只想要有一个名字的子节点的宠物'bar'.

xml xslt xpath

34
推荐指数
3
解决办法
3万
查看次数

将xsl:value-of设置为href属性和XSLT中链接的文本字段

如何设置一个href,它既是链接,也有通过XSLT转换的链接文本?这是我到目前为止所做的,它给出了错误"xsl:value-of不能是xsl:text元素的子元素":

<xsl:element name="a">
   <xsl:attribute name="href">
      <xsl:value-of select="actionUrl"/>
   </xsl:attribute>
   <xsl:text><xsl:value-of select="actionUrl"/></xsl:text> 
</xsl:element>
Run Code Online (Sandbox Code Playgroud)

xml xslt href

34
推荐指数
3
解决办法
6万
查看次数

使用XSLT将XML拆分为多个文件

我很难绕过XSLT,但我听说可以将XML文件拆分成多个文件.基本上我想将所有元素复制到第一个文件和最后一个文件之后,然后为每个输出文件添加单个文件内容.

如果有可能,有人可以给我一些指示吗?

谢谢,

complete.xml

<rootelem>
  <elem>
    <file attr1='1'>
      <content>content file 1</content>
    </file>
    <file attr2='2'>
      <content>content file 2</content>
    </file>
    <file attr3='3'>
      <content>content file 3</content>
    </file>
  </elem>
</rootelem>
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

complete_PART1.xml

<rootelem>
  <elem>
     <file attr1='1'>
        <content>content file 1</content>
     </file>
  </elem>
</rootelem>
Run Code Online (Sandbox Code Playgroud)

complete_PART2.xml

<rootelem>
  <elem>
    <file attr2='2'>
      <content>content file 2</content>
    </file>
  </elem>
</rootelem>
Run Code Online (Sandbox Code Playgroud)

complete_PART3.xml

<rootelem>
  <elem>
     <file attr3='3'>
        <content>content file 3</content>
     </file>
  </elem>
</rootelem>
Run Code Online (Sandbox Code Playgroud)

xml xslt

34
推荐指数
2
解决办法
3万
查看次数

XSLT部门

我正在尝试从数据库中提取一个值并将其除以12并显示该数字,但我似乎无法正确使用它.这是我到目前为止显示的值:

$<xsl:value-of select="format-number(number(//Applications/AveAnnualVolume),'###,###,##0.00')"/> 
Run Code Online (Sandbox Code Playgroud)

那部分有效,但我无法弄清楚如何将它除以12而是显示出来.

xslt

34
推荐指数
1
解决办法
5万
查看次数

性能:call-template vs apply-template

在XSLT处理中,apply-template和call-template之间是否存在性能差异?在我的样式表中有很多我可以使用的实例,这是最好的选择吗?

xslt

33
推荐指数
2
解决办法
4万
查看次数

用于调试xslt的工具

我有一个Java servlet,它生成xml,用xslt样式表进行翻译,然后显示生成的HTML.这是我第一次使用xslt.调试xslt的好方法是什么?我有(或可以得到)一些示例XML文件来应用转换.但我真的不确定语法,所以给我语法警告的东西会很棒.

xml xslt debugging

33
推荐指数
4
解决办法
3万
查看次数

xsl:如何拆分字符串?

我想将分号(;)上的地址拆分为由<br />以下各项分隔的行:

例如if address= 123 Elm Street,我想输出123 Elm Street,

但如果address= 123 Elm Street;PO Box 222,我想输出

123 Elm Street<br />PO Box 222
Run Code Online (Sandbox Code Playgroud)

如果address= 123 Elm Street;PO Box 222;c/o James Jones,我想输出

123 Elm Street<br />PO Box 222<br />c/o James Jones
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?(可能很简单,但我不熟悉XSLT)

普通的XSL选择器是

<xsl:value-of select="address"/>
Run Code Online (Sandbox Code Playgroud)

我想修改这个XSLT片段以分号分割.


更新:显然,答案涉及使用<xsl:call-template>和功能substring-before()substring-after().

但我是XSLT的初学者,我真的可以使用一些帮助来解决这个问题.

xml xslt xslt-2.0 xslt-1.0

33
推荐指数
2
解决办法
10万
查看次数

如何将Saxon设置为Java中的Xslt处理器?

这是一个简单的问题,但我无法找到答案.我有一个XSLT 2.0样式表,我正在尝试用Java处理.它依赖于Saxon的XSL元素.

我当前的类在使用简单的XSLT 1.0时运行良好,但是我使用使用Saxon构建的2.0 XSLT会收到有关无法识别的元素的错误.

我无法弄清楚如何告诉Java使用Saxon作为处理器.我在班上使用javax.xml.transform.这是我可以设置的属性吗?我该怎么做呢?谢谢!

编辑 我想出如何设置属性使用Saxon,但现在我收到此错误.

Provider net.sf.saxon.TransformerFactoryImpl not found
Run Code Online (Sandbox Code Playgroud)

如何在我的应用程序中包含Saxon?

java xslt sax

33
推荐指数
1
解决办法
3万
查看次数

在某处可以使用XSLT好友吗?

我想很多人都知道像RegexBuddy这样的工具.XSLT有类似的东西吗?

xml xslt

32
推荐指数
1
解决办法
2004
查看次数

哪些浏览器支持XSLT 2.0?

Safari浏览器不支持XSLT 2.0文档.

哪些浏览器(如果有)支持XSLT 2.0?

xml browser xslt xslt-2.0

31
推荐指数
1
解决办法
1万
查看次数

标签 统计

xslt ×10

xml ×7

xslt-2.0 ×2

browser ×1

debugging ×1

href ×1

java ×1

sax ×1

xpath ×1

xslt-1.0 ×1