Tag: xslt

为什么XPath中的索引以1而不是0开头?

有些同事和我正在比较我们编程的过去的语言,并且正在谈论我们用VBScript的经验,其奇怪的特征,如基于1的索引,而不是像其他语言那样基于0的索引,理由是它是(例如Excel VBA)而不是开发者的语言。 然后有人说,“ XPath也有一个基于索引的索引 ”,我不能相信,直到我发现这篇文章 ,其中有许多理由支持基于0的方法,包括迈克尔·凯本人的一些: “…基于零的索引往往会使访问具有一维数组访问expression式的multidimensional array时索引公式更简单” “在处理表格或对string进行下标时,基于零的地址往往会更方便” “…硬件寻址不是基于0的寻址的唯一好处…它也使得计算更容易…” 但引用迈克尔凯的结论是: …基于1的逻辑是XPath和XSLT的正确select…因为这种语言是为用户devise的,而不是为程序员devise的,用户仍然有这种老式的习惯,把书中的第一章称为Chapter一… 有人可以向我解释吗? (1)XPath是如何为用户devise的? 我无法想象任何不是开发人员的人都在用XPath的语法刚性或XSLT的声明性/function性编程方面进行争论。 (2)为什么XPath的创build者通过select基于1的索引来违背现代编程语言的规范?

很好用javascript打印XML

我有一个string,表示一个非缩进的XML,我想漂亮的打印。 例如: <root><node/></root> 应该成为: <root> <node/> </root> 语法突出显示不是必需的。 为了解决这个问题,我首先转换XML来添加回车符和空格,然后使用pre标签输出XML。 为了添加新的行和空格,我写了下面的函数: function formatXml(xml) { var formatted = ''; var reg = /(>)(<)(\/*)/g; xml = xml.replace(reg, '$1\r\n$2$3'); var pad = 0; jQuery.each(xml.split('\r\n'), function(index, node) { var indent = 0; if (node.match( /.+<\/\w[^>]*>$/ )) { indent = 0; } else if (node.match( /^<\/\w/ )) { if (pad != […]

XSL中的“call-template”和“apply-templates”有什么区别?

我是XSLT新手,所以我对这两个标签有点困惑, <xsl:apply-templates name="nodes"> 和 <xsl:call-template select="nodes"> 那么你能列出它们之间的区别吗?

获取XML中的属性值

如何使用xslt在以下xml中获取attribute1(blah)的值: <name attribute1="blah" attribute2="blahblah"> </name>

如何使用XSLT将string转换为大写或小写?

如何在XSL中进行大小写转换? <xsl:variable name="upper">UPPER CASE</xsl:variable> <xsl:variable name="lower" select="???"/>

XSLT值得吗?

前一段时间,我开始了一个项目,在那里我devise了一个html-esque的XML模式,以便作者能够以简化的格式编写他们的内容(教育课程材料),然后通过XSLT将其转换为HTML。 我玩了一段时间,并把它弄到一个非常基本的水平,但后来因为我遇到的限制而感到非常恼火(这可能是我的知识的限制),而且当我读博客时build议去沟XSLT,只要用你自己select的语言编写你自己的XML到任何parsing器,我就急于跳到这个语言上,并且出色地完成了。 我至今仍在努力( 现在我应该正在努力,而不是在SO上 ),而且我看到越来越多的事情让我觉得决定放弃XSLT是一个好的。 我知道XSLT有其自身的地位,因为它是一个公认的标准,如果每个人都在写自己的口译人员,他们中的90%最终会在TheDailyWTF上出现 。 但是鉴于这是一种function性风格的语言,而不是大多数程序员熟悉的程序风格,对于像我自己这样开始项目的人, 你会推荐他们走下我所做的道路,还是用XSLT ?

你可以把两个条件在xslttesting属性?

这是正确的当4 <5和1 <2? <xsl:when test="4 &lt; 5 AND 1 &lt; 2" > <!– do something –> </xsl:when>

使用XSLT设置HTML5文档types

我将如何通过XSLT 干净地设置文件的文档types为HTML5 <!DOCTYPE html> (在本例中为collective.xdv ) 以下是我的谷歌foo能find的最好的: <xsl:output method="html" doctype-public="XSLT-compat" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" /> 生产: <!DOCTYPE html PUBLIC "XSLT-compat" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

如何在XSLT中实现if-else语句?

我想在XSLT中实现一个if-else语句,但我的代码只是不parsing。 有没有人有任何想法? <xsl:variable name="CreatedDate" select="@createDate"/> <xsl:variable name="IDAppendedDate" select="2012-01-01" /> <b>date: <xsl:value-of select="$CreatedDate"/></b> <xsl:if test="$CreatedDate > $IDAppendedDate"> <h2> mooooooooooooo </h2> </xsl:if> <xsl:else> <h2> dooooooooooooo </h2> </xsl:else>

有没有办法使用web.config转换做“replace或插入”?

我正在使用web.config转换,如下面的post所述,以便为不同的环境生成configuration。 http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html 我可以通过匹配键来进行“replace”转换,例如 <add key="Environment" value="Live" xdt:Transform="Replace" xdt:Locator="Match(key)" /> 我可以做“插入”,例如 <add key="UseLivePaymentService" value="true" xdt:Transform="Insert" /> 但是我真正觉得有用的是一个ReplaceOrInsert转换,因为我不能总是依赖于原来的configuration文件有/没有一定的关键。 有没有办法做到这一点?