首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

,求教XML数据输出有关问题

2012-02-27 
在线等,求教XML数据输出问题 我的XML文档如下:?xmlversion 1.0 encoding gb2312 ?-RootDescripti

在线等,求教XML数据输出问题

我的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= "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= ". "/> 也是可行的。

热点排行