xsl是个格式化xml的东西,有点像css
记录一下
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<add>
<xsl:for-each select="document/item">
<doc>
<field name="id"></field>
<field name="title"><xsl:value-of select="title"/></field>
<field name="playLink"><xsl:value-of select="pLink"/></field>
<field name="imageLink"><xsl:value-of select="iLink"/></field>
<field name="videoLink"><xsl:value-of select="vLink"/></field>
<xsl:for-each select="tag">
<field name="tag"><xsl:value-of select="."/></field>
</xsl:for-each>
<field name="comment"><xsl:value-of select="comment"/></field>
<field name="pubDate"><xsl:value-of select="pubDate"/></field>
</doc>
</xsl:for-each>
</add>
</xsl:template>
</xsl:stylesheet>
=======================================================
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<add>
<xsl:for-each select="zxz/TR">
<doc>
<field name="id"><xsl:value-of select="TD[1]"/></field>
<field name="title"><xsl:value-of select="TD[2]"/></field>
<field name="ver"><xsl:value-of select="TD[3]"/></field>
<field name="language"><xsl:value-of select="TD[4]"/></field>
<field name="type"><xsl:value-of select="TD[5]"/></field>
<field name="auth"><xsl:value-of select="TD[6]"/></field>
<field name="size"><xsl:value-of select="TD[7]"/></field>
<field name="cat"><xsl:value-of select="TD[8]"/></field>
<field name="platform"><xsl:value-of select="TD[9]"/></field>
<field name="donotknow"><xsl:value-of select="TD[10]"/></field>
<field name="description"><xsl:value-of select="TD[11]"/></field>
<field name="showtimes"><xsl:value-of select="TD[12]"/></field>
<field name="addtime"><xsl:value-of select="TD[13]"/></field>
</doc>
</xsl:for-each>
</add>
</xsl:template>
</xsl:stylesheet>
=======================================================
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<div style="line-height:20px">
<xsl:for-each select="response/result/doc">
<xsl:element name="a"><xsl:attribute name="href">http://www.cnd8.com/soft/<xsl:value-of select="str[@name='id']"/>.htm</xsl:attribute>
<xsl:attribute name="target">_blank</xsl:attribute>
<xsl:choose>
<xsl:when test="string-length(str[@name='title']) > 14">
<xsl:value-of select="substring(str[@name='title'],0,14)"/>...
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="str[@name='title']"/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
<br />
</xsl:for-each>
</div>
</xsl:template>
</xsl:stylesheet>
再附上一些网友写的:
节点集函数提供关于一组节点(一个或多个节点)的信息。常用的节点集函数有:
l last()——返回一个称为上下文大小的数字,即给定上下文中的节点数,不同于最后一个节点。
l position()——返回一个称为上下文位置的数字,集当前节点在给上下文节点集(列表)中的位置。比如,可以用表达式 position()=last() 测试处理的是否是集合中的最后一个节点。
l count(node-set)——返回实参节点集中的节点数。
l id(object)——返回一个节点集,根据在 DTD 中声明为 ID 类型的唯一标识符选择元素。
XPath 还定义了和节点名及名称空间有关的其他三个函数:
l local-name()
l namespace-uri()
l name()
通过字符串函数您可以操纵字符串。常用的字符串函数有:
l string()——把参数对象或者上下文结点转化成字符串。合法的参数包括节点集、数字、布尔值或者其他任何类型——但是对于最后一种情况转换的结果不可预料。建议使用 XSLT 函数 format-number 把数字转化成字符串,或者使用 XSLT 元素 xsl:number 提供给用户。
l concat()——以两个或更多字符串作为参数并返回这些字符串的连接。
l starts-with()——如果第一个字符串参数以第二个字符串参数开始则返回 true,否则返回 false。
l contains()——如果第一个字符串参数包含第二个字符串参数则返回 true,否则返回 false。
其他的XPath 符串函数包括:substring()、substring-before()、substring-after()、string-length()、normalize-space()和translate()。详请参阅XPath 1.0规范的4.2节。
布尔函数用于把一个对象或字符串转化成 true 或者 false,或者直接获得真或假的值。布尔函数有:
l boolean()——根据以下规则返回作为参数传递的对象转换成布尔值的结果:不同于 0 或者 NaN 的数字为 true;非空的节点集或者字符串为 true。其他类型的对象已不可预料的方式转换。
l not()——如果作为参数传递的布尔值为 false 返回 true,否则返回 false。
l true() 和 false()——分别返回 true 或 false。这些函数很有用,因为在 XPath 中 true 和 false 被看作是普通的字符串而不是真和假的值。
l lang()——如果上下文节点的语言和字符串参数中指定的语言相同,或者是它的一种子语言返回 true,否则返回 false。上下文节点的语言通过 xml:lang 属性的值定义。比如,lang("en") 对于 AuctionItemList.xml 树中的任何节点都返回 false,因为没有指定 xml:lang 属性。
数字函数是 XPath 的数值函数,都返回数字。其中包括:
l number()——把可选的对象参数(如果没有指定参数则使用上下文节点)转化成数字,转换的规则如下:
l 布尔值 true 转换成1,false 转换成 0。
l 字符串转换成合理的数字。
l 节点集首先转换成字符串,然后把这个字符串转换成数字。
l 其他类型对象以不可预料的方式转换。
l sum()——对节点集参数中的所有节点应用 number() 函数后返回它们的和。
l floor()——返回不大于数字参数的最大整数数字。
l ceiling()——返回不小于数字参数的最小整数数字。
l round()——返回和数字参数最接近的整数数字。
Java对XPath的支持
Java 5 推出了javax.xml.xpath包,提供一个引擎和对象模型独立的XPath库。这个包也可用于Java 1.3及以后的版本,但需要单独安装Java API for XML Processing(JAXP) 1.3。
概要
通过本教程,您了解了XPath是用于处理XML文档不同部分的一种语言。您看到了XPath 和其他XML技术的联系,如XSLT和XPointer。您了解了什么是XPath表达式,包括表达式的一种特例称为位置路径。您还简要地了解了一下XPath函数库和已经推出的XPath 2.0的新特性。
更多信息
·XML Path Language
http://www.w3.org/TR/xpath
·XML Path Language (XPath) 2.0
http://www.w3.org/TR/xpath20/
·XML 路径语言(XPath) (版本 1.0)
http://www.opendl.com/openxml/w3/TR/xpath/xpath-gb.html#location-paths
最后一个有用哦~~~