2016-11-08 18 views
0

私は任意の値を返すためにxsltでends-withを使用しようとしています。例えば:私はこのXMLをしました:xslt 2.0でends-withを使用するには?

<BOOKS> 
    <BOOK> 
     <TITLE>title1</TITLE> 
     <ISSN>12313213</ISSN> 
    </BOOK> 
    <BOOK> 
     <TITLE>title2</TITLE> 
     <ISSN>67895776</ISSN> 
    </BOOK> 
    <BOOK> 
     <TITLE>title3</TITLE> 
     <ISSN>54363645</ISSN> 
    </BOOK> 
</BOOKS> 

と、この静的なXML(形式のbook.xml):

<BOOKS> 
    <BOOK> 
     <VALUE>test title12</VALUE> 
     <PRICE>1235,23</PRICE> 
    </BOOK> 
    <BOOK> 
     <VALUE>test title1</VALUE> 
     <PRICE>345,23</PRICE> 
    </BOOK> 
</BOOKS> 

私はタイトルのXMLに本のタイトルを持っているかどうかを確認する必要があります。私のコード:

<xsl:template match="/"> 
<xsl:variable name="book" select="document('file:///E:/book.xml')"/> 
<BOOKS> 
    <xsl:for-each select="$book/books/book"> 
     <xsl:variable name="value" select="VALUE"/> 
     <xsl:variable name="price" select="ESTRATO"/> 
     <xsl:for-each select="//BOOKS"> 
      <xsl:for-each select="BOOK"> 
       <xsl:if test="ends-with($value, @TITLE)"> 
        <BOOK> 
        <TITLE><xsl:value-of select="@TITLE"/></TITLE> 
        <ISSN><xsl:value-of select="$value"/></ISSN> 
        <PRICE><xsl:value-of select="$price"/></PRICE> 
        </BOOK> 
       </xsl:if> 
      </xsl:for-each> 
     </xsl:for-each> 
    </xsl:for-each> 
</BOOKS>  
</xsl:template> 

xml本のタグVALUEに書籍のタイトルが終わったら、戻ってほしい。誰でも助けてくれますか?ありがとう。

How to use contains in xslt?のようなものを使用しようとしましたが機能しません。

+0

[使用はXSLT v1.0で終了します](http://stackoverflow.com/questions/11848780/use-ends-with-in-xslt-v1-0) – GSerg

答えて

1

あなたの質問は完全には明確ではありません。

XSLT 2.0

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

<xsl:param name="book" select="document('file:///E:/book.xml')"/> 

<xsl:template match="/BOOKS"> 
    <BOOKS> 
     <xsl:for-each select="BOOK"> 
      <BOOK> 
       <xsl:copy-of select="TITLE | ISSN"/> 
       <PRICE> 
        <xsl:value-of select="$book/BOOKS/BOOK[ends-with(VALUE, current()/TITLE)]/PRICE"/> 
       </PRICE> 
      </BOOK> 
     </xsl:for-each> 
    </BOOKS>  
</xsl:template> 

</xsl:stylesheet> 

XMLは大文字と小文字が区別されることに注意してください::bookBOOKを選択/一致していない私はあなたがこのような何かをしたいだと思い

+0

ありがとう、マイケル! –

関連する問題