WEB 开发 开发语言 Java 技术 .Net 技术 数 据 库 硬件使用
图象媒体 Linux/Unix 移动平台 嵌入开发 Windows 专区 软件工程
Ajax 技术 | ASP | PHP | ASP.NET | C# | JSP | Access | Oracle | 网页设计 | Flash | 安全专题 | IIS | VC/MFC | Delphi | C/C++
 你的位置:首页 > WEB 开发 > XML/SOAP

在线等,求教XML数据输出问题
[ 来源:ITWENKU 时间:2007-4-17 16:29:14 | 浏览:184人次 ]


我的XML文档如下:
<?xml version="1.0" encoding="gb2312" ?>
- <Root Description="用户套房" MemberID="2757" UserName="command" Sex="男" State="0" LastUpdate="4/17/2007 1:04:44 PM">
- <Room>
<RoomName RoomID="房间1">房间1</RoomName>
<RoomName RoomID="房间2">房间2</RoomName>
<RoomName RoomID="房间3">房间3</RoomName>
</Room>
- <Item Description="用户套房信息">
- <HouseInfo>
<HouseID>1732</HouseID>
<HouseName>command的套房</HouseName>
<HouseType>10</HouseType>
<HouseImg>/Images/Shop/User/defaultManBody.gif</HouseImg>
<Visited>9</Visited>
<Members>1</Members>
</HouseInfo>
</Item>
- <Item Description="成员信息">
- <MemberInfo>
- <Data>
<MemberID>2757</MemberID>
<UserName>command</UserName>
<Sex>男</Sex>
</Data>
</MemberInfo>
</Item>
- <Item Description="拜访信息">
<VisitMessage />
</Item>
</Root>

我在XLS样式表里想在一个写一个select下来菜单让用户选择-
<Room>
<RoomName RoomID="房间1">房间1</RoomName>
<RoomName RoomID="房间2">房间2</RoomName>
<RoomName RoomID="房间3">房间3</RoomName>
</Room>
里面每一个RoomName子元素的值,应该怎么写.

我是这样写的
<td width="16%"><select name="select">
<xsl:for-each select="Room/RoomName">
<option><xsl:value-of select="Room/RoomName" /></option>
</xsl:for-each>
</select></td>
为什么我的下拉菜单里面没有内容,是空白的,但是有3个选项在里面,只是内容是空白


请把这一句:<xsl:for-each select="Room/RoomName">
改为:   <xsl:for-each select="Root/Room/RoomName">

还有这一句:<xsl:value-of select="Room/RoomName" />
改为: <xsl:value-of select="." />

即可。


<xsl:for-each select="Root/Room/*>
</xsl:for-each>
*表示指定节点下的所有节点
.表示当前节点,等同于current()
楼上的应该解决不了问题


根据楼主的意思,我认为他只是要取“房间1,2,3”这几个数据。XML文件下面的大段都是无关的,所以就没有理会。
楼主的错误在于对根结点认识不清。在这个xsl文件中,“/” 是根结点,“Root”是根结点的第一个子节点。当前节点为根结点时,用"Room/RoomName"肯定是什么都拿不到的,只能改为"Root/Room/RoomName"或是"//Room/RoomName"才可以。
当上下文节点经过"Root/Room/RoomName"后,转变为"RoomName",此时上下文节点下已以不存在"Room/RoomName"这样的路径,所以用"Room/RoomName"也是什么都取不到。
因此这两处都必须改。改过后当然可以取到当前节点值。

像conis给出的方法,<for-each>循环中间的写成<xsl:value-of select="."/>也是可行的。


conis的方法和我的一样。 用*指所有节点,因为Room下面的所有节点都是RoomName,所以不用*直接用RoomName也是没有区别的。

 相关文章
·XML 超难问题,请各位帮助
·C#操作XML--插入问题
·如何用DOM4J解析下面的XML呢,请高手指点!用其他的解析器也可以请附上代码,谢谢~
·xml分页程序中如何自动把内容复制到粘贴板上
·高分求用C#做的XML配置工具
·js 修改某个xml 结点时,必须把xml文件全部取出后再进行操作?没有直接对某结点操作的方法码?

 最新更新
在线等,求教XML数据输出问题
用OPENXML讀取HTTP TABLE。xml內容插入到SQL TABLE的問題?
如何将xsd文件中的节点信息读出来?
在XSL中,格式化输出XML数据的问题
为什么XML在2003sp1下不能正常运行?
求一个用soap序列化封装传输数据的例子 在。net中实现
求一个xml解析的问题,C++ & msxml,不胜感激了
XSL中的msxsl:script定义的函数,怎样将节点的cdata的节点的文本作为参数传进去?
如何体现中间件技术在销售管理软件里面?
asp下用soap訪問webservice 問題
xml数据岛不被显示
如何转换XML文件中的这个特殊字符?
 版权所有:中国IT问库
copyright © 2006 www.itwenku.com all rights reserved.