|
top
|
Subject: get value from different document with a filter Author: Rakesh Keerthi Date: 29 Nov 2013 02:41 AM
|
Hi,
I've the below piece of XML.
<toc-div>
<title>CHAPTER 1 INTRODUCTION</title>
<subtitle>
<content-style font-style="italic">David Smith</content-style>
</subtitle>
<toc-item>
<toc-title>1. Love on the Star Ferry</toc-title>
<toc-pg>2</toc-pg>
</toc-item>
<toc-item>
<toc-title>2. Contracts, Torts, Copyrights and Other Mysteries of the Legal World</toc-title>
<toc-pg>2</toc-pg>
</toc-item>
</toc-div>
Here actually I want to get the reference that matches the title from different document.
The second document i have is
<chapter num="1">
<toc>
<toc-part>
<toc-div>
<toc-item>
<toc-title>1. Love on the Star Ferry</toc-title>
<toc-pg>1.002</toc-pg>
</toc-item>
<toc-item>
<toc-title>2. Contracts, Torts, Copyrights and Other Mysteries of the Legal World</toc-title>
<toc-pg>1.004</toc-pg>
</toc-item>
</toc-div>
</toc-part>
</toc>
</chapter>
The condition is that first the title should be matched in both cases and then the <toc-pg> should be taken and displayed. I'm able to redirect to that document by using the below xslt, but I'm unable to know how I can retrieve these values. Below is the XSLT I tried.
<xsl:template match="toc-item">
<xsl:variable name="prent">
<xsl:value-of select="substring-before(substring-after(../title,' '),' ')"/>
</xsl:variable>
<xsl:variable name="tex">
<xsl:value-of select="./toc-title/text()"/>
</xsl:variable>
<xsl:variable name="cha">
<xsl:value-of select="$prent"/>
</xsl:variable>
<xsl:if test="document(concat('C:\Documents and Settings\u0138039\Desktop\Proview\HK\Business Law in Hong Kong\Source\Business Law in Hong Kong/Chapter ',$cha,'.xml'))/chapter/toc/toc-part/toc-div/toc-item/toc-title/text() = ./toc-title/text()">
<xsl:copy-of select="$tex"/>
<xsl:apply-templates select="document(concat('C:\Documents and Settings\u0138039\Desktop\Proview\HK\Business Law in Hong Kong\Source\Business Law in Hong Kong/Chapter ',$cha,'.xml'))/chapter/toc/toc-part/toc-div/toc-item/toc-title" mode="x"/>
</xsl:if>
</xsl:template>
Please let me know how can I see the value expected. The documents are as follows XSLT(http://pastebin.com/4fNiHjVv) and XML(http://pastebin.com/5T7Q5KLS) for reference.
Thanks
|
|
|