标签: xslt

XSLT将列表转换为动态确定列的表

我需要这个XML,

<list columns="3">
  <item>martin</item>
  <item>donald</item>
  <item>whistler</item>
  <item>mother</item>
  <item>carl</item>
  <item>liz</item>
  <item>cosmo</item>
</list>
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

<table>
  <tr>
    <td>martin</td>
    <td>donald</td>
    <td>whistler</td>
  </tr>
  <tr>
    <td>mother</td>
    <td>carl</td>
    <td>liz</td>
  </tr>
  <tr>
    <td>cosmo</td>
    <td></td>
    <td></td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

什么时候columns="4",它应该是这样的:

<table>
  <tr>
    <td>martin</td>
    <td>donald</td>
    <td>whistler</td>
    <td>mother</td>
  </tr>
  <tr>
    <td>carl</td>
    <td>liz</td>
    <td>cosmo</td>
    <td></td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

有关XSLT文件应该是什么样子的任何提示?我可以说,它需要某种循环(递归?),但我不确定是否有更优雅的方式.

xml xslt multiple-columns

0
推荐指数
1
解决办法
5798
查看次数

XSLT如果first为空,则将排序应用于第二个值

我有一个循环新闻项目节点.在其他属性中,这些新闻项具有创建日期的两个属性.系统添加日期和用户输入创建日期(以覆盖系统日期).我希望列表按创建日期排序,并在用户输入的日期中按首选项排序.

以下是我卑微的无效尝试!

<xsl:for-each select="$currentPage/ancestor-or-self::node /node [@nodeTypeAlias = $documentTypeAlias and string(data [@alias='umbracoNaviHide']) != '1']">

<xsl:choose>
 <xsl:when test="data [@alias = 'createdDate'] != ''">
  <xsl:variable name="sort" select="string(data [@alias = 'createdDate'])"/>
 </xsl:when>
 <xsl:otherwise>
  <xsl:variable name="sort" select="string(@createDate)"/>
 </xsl:otherwise>
</xsl:choose>

<xsl:sort select="$sort" order="descending"/>
Run Code Online (Sandbox Code Playgroud)

非常感谢

sorting xslt umbraco

0
推荐指数
1
解决办法
2325
查看次数

快速xslt for-each问题

假设我有一个包含以下内容的XML文档:

<keywords>
<keyword>test</keyword>
<keyword>test2</keyword>
<keyword>test3</keyword>
<keyword>test4</keyword>
</keywords>
Run Code Online (Sandbox Code Playgroud)

我想使用XSLT在HTML中打印出来,如下所示:

<ul>
<li>test</li>
<li>test2</li>
<li>test3</li>
<li>test4</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我的XSLT会是什么样子?我试过这个:

<ul>
<xsl:for-each select="keywords/keyword">
    <li><xsl:value-of select="keyword"/></li>
</xsl:for-each>
</ul>
Run Code Online (Sandbox Code Playgroud)

但是这不会打印出关键字值,只是一个空白项.

<ul>
<xsl:for-each select="keywords">
    <li><xsl:value-of select="keyword"/></li>
</xsl:for-each>
</ul>
Run Code Online (Sandbox Code Playgroud)

不起作用(出于显而易见的原因),但至少打印出第一个关键字!

建议?谢谢!

xml xslt

0
推荐指数
2
解决办法
266
查看次数

在XSLT 1.0中,当它是具有相同名称的多个元素之一时,如何访问特定XML元素的属性?

我责怪谷歌搜索设备让我问这个问题.

以下是设备返回的XML片段:

<GSP VER="3.2">
<TM>0.073846</TM>
<Q>test</Q>
<PARAM name="entqr" value="0" original_value="0"/>
<PARAM name="access" value="p" original_value="p"/>
<PARAM name="output" value="xml_no_dtd" original_value="xml_no_dtd"/>
<PARAM name="sort" value="date:D:L:d1" original_value="date%3AD%3AL%3Ad1"/>
<PARAM name="ud" value="1" original_value="1"/>
<PARAM name="ie" value="UTF-8" original_value="UTF-8"/>
<PARAM name="btnG" value="Search" original_value="Search"/>
<PARAM name="client" value="default_frontend" original_value="default_frontend"/>
<PARAM name="oe" value="UTF-8" original_value="UTF-8"/>
<PARAM name="q" value="I like stuff" original_value="I like stuff"/>
...
Run Code Online (Sandbox Code Playgroud)

我需要为这些PARAM元素中的特定一个执行xsl:value-of,有条件地根据其名称.例如,我需要使用@ name ="client"输出PARAM元素的@value.

谢谢!

xml xslt xpath

0
推荐指数
1
解决办法
2708
查看次数

如何使用XSLT生成文本文件

我想使用Java生成使用XML和XSLT的文本格式文件.

我知道如何生成PDF格式,但我不知道生成文本格式,即需要什么软件包,XSLT需要哪些更改?

如果有人可以为此提供样品,那对我来说将是一个很大的帮助.

java xslt

0
推荐指数
1
解决办法
2219
查看次数

XSLT将华氏温度转换为摄氏温度

我是XSLT的新手,需要知道如何将华氏温度值转换为摄氏温度值.

谢谢,

xml xslt

0
推荐指数
1
解决办法
741
查看次数

Xslt和多行文本(Sitecore)

我在项目(多行文本)中有一个字段,我在xslt渲染中输出.问题是我的输出中没有显示carrigae返回 - 我需要做些什么来使我的xslt输出显示carrigae返回?

xslt sitecore multiline

0
推荐指数
1
解决办法
3508
查看次数

XSLT和XPath:如何以最有效的方式更改XML文件?

我是XSLT和XPath的新手,所以请原谅我这个简单的问题.

我有以下XML文件:

<?xml version="1.0"?>
    <Configuration serviceName="Just Service" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
      <Page name="Books">
        <Instances count="5" />
        <ConfigurationSettings>
          <Setting name="index" value="true" />
          <Setting name="number" value="value1" />
          <Setting name="bookstorage" value="value2"/>
        </ConfigurationSettings>
      </Page>
      <Page name="Magazines">
        <Instances count="7" />
        <ConfigurationSettings>
          <Setting name="index" value="false" />
          <Setting name="number" value="value1" />
          <Setting name="magazinestorage" value="value3"/>
        </ConfigurationSettings>
      </Page>
    </Configuration>
Run Code Online (Sandbox Code Playgroud)

我只想更改以下值 ...

value1 - 数字(两个地方); value2 - 用于书籍存储 ; value3 - 杂志存储 ;

......并保持所有其他内容不变.

为此,我想使用msxsl.exe(Microsoft命令行实用程序).能否请您给我一个XSLT样式表示例的提示?如何以最有效的方式使用XSLT处理初始XML文件?

谢谢,Rac

xml xslt xpath

0
推荐指数
1
解决办法
1237
查看次数

如果在XSLT中定义

我怎样才能检查定义的变量$ var01?问题是:

<input type="text" name="search_do" style="width: 150px;" value="{$search_do}" />
Run Code Online (Sandbox Code Playgroud)

但它不起作用,如果没有定义$ search_do ,我会收到消息"运行时错误".

PS我无法编辑php后端,只是XSL模板

xslt

0
推荐指数
1
解决办法
3782
查看次数

在XSLT谓词中使用XML元素值

我不完全确定这是否可能与XSLT和我的讲师不知道我在说什么,所以如果有人可以帮助,谢谢!

我有一个XML文件,其中包含一个作者列表,每个作者都有一个唯一的ID,还有一个书籍列表,每个书籍都有一个IDREF作为其值的子元素.该文件的布局如下:

<library>
  <authors>
    <author id="a001">
       <name>Joyce</name>
    </author>
  </authors>
  <books>
    <book id="b001">
      <name>Illiad</name>
      <authorID>a001</authorID>
    </book>
  </books>
</library>
Run Code Online (Sandbox Code Playgroud)

我正在尝试写出所有书籍的列表,并使用authorID值获取有关作者的信息.

XSLT:

<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>XSLT Test</title>
</head>

<body>
    <xsl:for-each select="//book">
     <div style="display:block; background-color:#999; padding:2px; margin:2px;">
         <h2><xsl:value-of select="name"/></h2>
            <p><xsl:value-of select="synopsis"/></p>
            <ul>
             <li>Author: <xsl:value-of select="//author[@id='X']/name"/></li>
            </ul>
        </div>
    </xsl:for-each>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

通过用一个值(例如a001)替换X,我可以恢复Joyce但是如何在此处使用authorID值,以便系统可以很好地扩展?

xml xslt

0
推荐指数
1
解决办法
1531
查看次数

标签 统计

xslt ×10

xml ×6

xpath ×2

java ×1

multiline ×1

multiple-columns ×1

sitecore ×1

sorting ×1

umbraco ×1