簡體   English   中英

檢查節點是否包含值XSLT

[英]Check if node contains value XSLT

我有以下xml:

<Reply>
  <OptionInfoReply>
    <Option>
       <Opt>EDIFBEB </Opt>
       <OptAvail>-3 </OptAvail>
    </Option>
    <Option>
       <Opt>CHSFBEB </Opt>
       <OptAvail>-3 </OptAvail>
    </Option>
    <Option>
       <Opt>WESFBEB </Opt>
       <OptAvail>-3 </OptAvail>
   </Option>

還有我在其中使用的XML:

<Reply>
  <OptionInfoReply>
    <Option>
      <Opt>CHSFBEB</Opt>
    </Option>
  </OptionInfoReply>
</Reply>

我要在第二個xml中移動每個。 我想檢查第二個XML中的CHSFBEB值是否在第一個xml中存在。

 <xsl:template match="/">
    <xsl:for-each select="/Reply/OptionInfoReply/Option">
        <xsl:variable name="SearchOPT"  select="Opt"/>
        <db:AVAILABLE_ROOMS_NO>
         <xsl:value-of      select="$AVL/Reply/OptionInfoReply/Option/Opt[contains(.,$SearchOPT)]/../OptAvail"/>
        </db:AVAILABLE_ROOMS_NO>
    </xsl:for-each>
</xsl:template>

但是,如果在第一個XML中我有多個選擇,那么我不會從第一個xml中獲得OptAvail的值。 如果我只有一個節點,我將從OptAvail接收值。

希望這可以幫助,

 <?xml version="1.0"?>
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:MyUtils="pda:MyUtils">
  <xsl:template match="/">
   <check>
   <xsl:variable name="second" select="MyUtils:getSecondXMLData()//Opt"/>
   <xsl:for-each select="//Option">
     <xsl:if test="Opt=$second">
      <AVAILABLE_ROOMS_NO>
        <xsl:value-of select="OptAvail"/>
      </AVAILABLE_ROOMS_NO>
    </xsl:if>
  </xsl:for-each>
   </check>
 </xsl:template>
 </xsl:stylesheet>

我還沒有通過文檔功能獲取第二個xml。 這部分是通過擴展功能“ getSecondXMLData()”完成的,該功能從第二個xml提供了一組節點。 我假設您的第一個xml是這樣的:

     <?xml version="1.0" encoding="UTF-8"?>
     <Reply>
     <OptionInfoReply>
       <Option>
         <Opt>EDIFBEB</Opt>
          <OptAvail>-3</OptAvail>
       </Option>
    <Option>
      <Opt>CHSFBEB</Opt>
      <OptAvail>-3 </OptAvail>
    </Option>
    <Option>
      <Opt>WESFBEB</Opt>
      <OptAvail>-3 </OptAvail>
    </Option>
    <Option>
      <Opt>CHSFBEB</Opt>
      <OptAvail>-3 </OptAvail>
    </Option>
  </OptionInfoReply>
</Reply>

請注意,您的第一個xml包含空格,在實際比較之前需要將其刪除

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM