XSLT求助:根节点有属性(attribut),字节点的读取问题。

shoppo0505 2017-07-20 02:07:50
当根节点没有属性值的时候:
<Root>
<p1>
<p2>
.....
在xslt文件中,我可以直接使用<xsl:template match="/Root/p1"> 来读取第二层节点

但是当Root有自己的属性的时候:
<Root name='' width='' .....>
<p1>
<p2>
这个时候我就不能使用<xsl:template match="/Root/p1"> 来读取第二层节点,没有报错,但是转换的XML文件只有头行定义。
<?xml version="1.0" encoding="utf-8"?>

已经尝试用
<xsl:template match="/">
然后再select=“Root/p1”也不行。

请指点
...全文
307 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2017-07-25
  • 打赏
  • 举报
回复
引用 5 楼 net_lover 的回复:
有namespace就得加上啊 如 <xsl:stylesheet xmlns:xx="http://www.fyswords.com.cn/xml" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/xx:Root">
试过了,还是不行,很奇怪。
shoppo0505 2017-07-21
  • 打赏
  • 举报
回复
引用 1 楼 net_lover 的回复:
属性不影响,只有xmlns名称空间的时候才影响
谢谢回复。 但是我自己测试过了,什么都相同,除了root节点的属性。 有属性,输出文件就只有头行xml定义,没有属性,整个文件就完全正确,没有问题。 也找不出任何原因。 顺便问一下,有xslt的通用解析器么?我在visual studio 和eclipse里面得到的结果不一样。xslt程序和xml源文件都是同一个
孟子E章 2017-07-21
  • 打赏
  • 举报
回复
有namespace就得加上啊 如 <xsl:stylesheet xmlns:xx="http://www.fyswords.com.cn/xml" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/xx:Root">
shoppo0505 2017-07-21
  • 打赏
  • 举报
回复
引用 3 楼 net_lover 的回复:
你可以发一下你的xml和xslt文件测试下,说的属性还有其他内容吗?如果只有你说的那2个属性, select=“Root/p1” 跟有没有属性是一样的。前提是排除拼写错误,大小写不一致等情况。
有namespace和设置。 大小写的问题在程序中是没有的,这里就是说明一下。 不过问题自己解决了。 现在是 <xsl:template match="/"> 然后再<xsl:for-each select="//......> 之前的 <xsl:template match="/Root/p1">没办法解析。 现在读取根节点之后,直接跳到下层节点,这样可以,不过具体原因也不清楚。
孟子E章 2017-07-21
  • 打赏
  • 举报
回复
你可以发一下你的xml和xslt文件测试下,说的属性还有其他内容吗?如果只有你说的那2个属性, select=“Root/p1” 跟有没有属性是一样的。前提是排除拼写错误,大小写不一致等情况。
孟子E章 2017-07-20
  • 打赏
  • 举报
回复
属性不影响,只有xmlns名称空间的时候才影响

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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