Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 将当前值从父节点值xslt增加1_Xml_Xslt_Xpath_Xhtml - Fatal编程技术网

Xml 将当前值从父节点值xslt增加1

Xml 将当前值从父节点值xslt增加1,xml,xslt,xpath,xhtml,Xml,Xslt,Xpath,Xhtml,如果条件为真,我需要将当前节点值从上一个节点值增加1。我在下面附上了我的XSLT和XML。若董事会和房间类型相同,我想增加一个从以前的Noofrom值Noofrom值。否则noofrom应该是1。目前我手动将其设置为2。谁能帮我一下吗。 我的XML <AvailableRoom> <HotelOccupancy> <RoomCount>1</RoomCount>

如果条件为真,我需要将当前节点值从上一个节点值增加1。我在下面附上了我的XSLT和XML。若董事会和房间类型相同,我想增加一个从以前的Noofrom值Noofrom值。否则noofrom应该是1。目前我手动将其设置为2。谁能帮我一下吗。 我的XML

 <AvailableRoom>
                <HotelOccupancy>
                  <RoomCount>1</RoomCount>
                  <Occupancy>
                    <AdultCount>1</AdultCount>
                    <ChildCount>0</ChildCount>
                  </Occupancy>
                </HotelOccupancy>
                <HotelRoom SHRUI="DVB8XS0PRiyGagcJUhDETw==" availCount="2" onRequest="N">
                  <Board type="SIMPLE" code="RO-E10" shortname="RO">ROOM ONLY</Board>
                  <RoomType type="SIMPLE" code="SGL-E10" characteristic="DX">SINGLE DELUXE</RoomType>
                  <Price>
                    <Amount>178.020</Amount>
                  </Price>
                </HotelRoom>
              </AvailableRoom>
              <AvailableRoom>
                <HotelOccupancy>
                  <RoomCount>1</RoomCount>
                  <Occupancy>
                    <AdultCount>1</AdultCount>
                    <ChildCount>1</ChildCount>
                  </Occupancy>
                </HotelOccupancy>
                <HotelRoom SHRUI="yrfO/b/aFGqxZ9ks6Lu2Tg==" availCount="2" onRequest="N">
                  <Board type="SIMPLE" code="RO-E10" shortname="RO">ROOM ONLY</Board>
                  <RoomType type="SIMPLE" code="DBL-E10" characteristic="DX">DOUBLE DELUXE</RoomType>
                  <Price>
                    <Amount>186.480</Amount>
                  </Price>
                </HotelRoom>
              </AvailableRoom>

1.
1.
0
仅限房间
豪华单人间
178.020
1.
1.
1.
仅限房间
豪华双人房
186.480
我的XSLT

<xsl:for-each select="hm:AvailableRoom ">
            <availableroom>           
                <hotelcode>
                  <xsl:value-of select="preceding-sibling::hm:HotelInfo/hm:Code"/>
                </hotelcode>             
              <xsl:for-each select="hm:HotelOccupancy ">
                <roomcount>
                  <xsl:value-of select="hm:RoomCount"/>
                </roomcount>
                <xsl:for-each select="hm:Occupancy ">
                  <guests>
                    <xsl:value-of select="sum((hm:AdultCount | hm:ChildCount)[number(.) = .])"/>
                  </guests>
                  <adults>
                    <xsl:value-of select="hm:AdultCount"/>
                  </adults>
                  <children>
                    <xsl:value-of select="hm:ChildCount"/>
                  </children>
                </xsl:for-each>
              </xsl:for-each>
              <xsl:for-each select="hm:HotelRoom ">
                <shrui>
                  <xsl:value-of select="@SHRUI"/>
                </shrui>
                <xsl:choose>
                  <xsl:when test="parent::hm:AvailableRoom/preceding-sibling::hm:AvailableRoom[1]/hm:HotelRoom/hm:RoomType=hm:RoomType and parent::hm:AvailableRoom/preceding-sibling::hm:AvailableRoom[1]/hm:HotelRoom/hm:Board=hm:Board">
                    <noofroom>2</noofroom>                    
                  </xsl:when>
                  <xsl:otherwise>
                    <noofroom>1</noofroom>
                  </xsl:otherwise>
                </xsl:choose>
                <board>
                  <xsl:value-of select="hm:Board"/>
                </board>
                <roomtype>
                  <xsl:value-of select="hm:RoomType"/>
                </roomtype>
                <roomcode>
                  <xsl:value-of select="hm:RoomType/@code"/>
                </roomcode>
                <boardcode>
                  <xsl:value-of select="hm:Board/@code"/>
                </boardcode>
                <xsl:for-each select="hm:Price ">
                  <amount>
                    <xsl:value-of select="hm:Amount"/>
                  </amount>
                </xsl:for-each>
              </xsl:for-each>
            </availableroom>
          </xsl:for-each>

2.
1.

那么你的问题是什么?你能给我们看一下你想要的输出吗?数据是按顺序排列的吗?在文档中,具有相同类型的“board”和“room”元素是否始终是连续的,或者它们可能在任何地方?可能是重复的