xpath 表达式如何写?

WorldCreater 2003-06-19 11:51:32
<projects default="x">
<project id="x"></project>
<project id="y"></project>
..........
</projects>

想根据 projects 元素的default属性值,获取project元素

<projects default="x,y">
<project id="x"></project>
<project id="y"></project>
..........
</projects>
想根据 projects 元素的default属性值,获取project元素集
...全文
119 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WorldCreater 2003-06-20
  • 打赏
  • 举报
回复
上边复制粘贴错了

这是用xmlspy生成的初始文档,是有点区别,但是不知它们区别些什么

//////xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
</xsl:stylesheet>

////////xslt
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
</xsl:stylesheet>
WorldCreater 2003-06-20
  • 打赏
  • 举报
回复
这是用xmlspy生成的初始文档,是有点区别,但是不知它们区别些什么

//////xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
</xsl:stylesheet>

////////xslt
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
</xsl:stylesheet>

WorldCreater 2003-06-20
  • 打赏
  • 举报
回复
还是不懂
xslt 可扩展样式语言转换
xsl 可扩展样式语言

好象没什么分别嘛?

这个“转换”的意思有点不明白,xml文档不是都能分别通过达到转换的目的吗?
wangwenyou 2003-06-20
  • 打赏
  • 举报
回复
其实都是一样的东西,不要为扩展名所惑
只要你喜欢,任何合法的标记你都可以用。
wangwenyou 2003-06-20
  • 打赏
  • 举报
回复
多了一个xsl:output,指定了输出为xml。版本1.0,encoding为UTF-8;此时,转换输出的文档为xml,文件头为:
<?xml version="1.0" encoding="UTF-8"?>

而xsl的输出则可为html或普通文本。
wangwenyou 2003-06-19
  • 打赏
  • 举报
回复
可使用StringTokenizer解析取出的defaultvalue,生成
/projects/project[@id='defaultvalue1' or @id='defaultvalue2' or @id='defaultvalue3']
形式的Xpath。

XSLT多了一个transform,它指的是XML+XSL的转换过程;而XSL指的是XSL文件及其定义语言。
WorldCreater 2003-06-19
  • 打赏
  • 举报
回复
那么只能象我现在这么做:
先取出 projects 的 default 属性值 defaultvalue
然后再构造一个 xpath 表达式
/projects/project[@id='defaultvalue']

我是想取出projects中default值所指定的project元素(集)

另,想问问,xslt和xsl到底有什么区别啊?
wangwenyou 2003-06-19
  • 打赏
  • 举报
回复
这应该不是单一的Xpath能完成的事,你可能要用到nodetest和xsl:key。
即使费尽九牛二虎之力写出来,也无必要,如果你只是用于显示的话,何不用XSLT。
如要解决,可循下面两点:
1、default="x"并不是default="x,y"的特例,它得到的不过时候一个length为1的NodeList。
2、使用substring和contains分割x,y,z之类的列表,需要递归。

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧