xsl-list
[Top] [All Lists]

Re: Select value using keys

2006-03-04 09:59:03
On 3/4/06, geoff hopkins <geoffhopkins123(_at_)yahoo(_dot_)com> wrote:
I did but got no reply....

Date: Thu, 2 Mar 2006 23:40:20 -0800 (PST)
From: "geoff hopkins" <geoffhopkins123(_at_)yahoo(_dot_)com>
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Select value from document -T2

Take2.

Below is a example of an input xml basically have to
change the format to that below.  So when START is
found start reading and stop reading when STOP is
found.  Have sorted this out ok!

The problem I have is getting the value which is
outside of the START and STOP tags @doc it is uniquely
identified in the document as having 'Name:' at the
start of the text within the node (would prefer it to
search for first instance of this text)

I can't share the true xml doc for data protection
issues.

Thanks. Geoff

Example of input doc.

<root>
<a>sdfsdfsd</a>
<a>dsfssdf</a>
<a>Name: DOC_ID1</a>
<a>iuhs</a>
<a>sdfsdf</a>
<a>sdfsd</a>
<a>START</a>
<a>A1,A2</a>
<a>A3,A4</a>
<a>A5,A6</a>
<a>A7,A8</a>
<a>STOP</a>
<a>sdfsdfds</a>
<a>sdfsdfsd</a>
</root>

Example of output:
<root>
<doc>
<relationship parent="A1" child="A2" doc="DOC_ID1"/>
<relationship parent="A3" child="A4" doc="DOC_ID1"/>
<relationship parent="A5" child="A6" doc="DOC_ID1"/>
<relationship parent="A7" child="A8" doc="DOC_ID1"/>
</doc>
</root>



<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:template match="root">
  <root>
    <doc>
      <xsl:apply-templates select="a[preceding-sibling::a[. = 'START']]
                                    [following-sibling::a[. = 'STOP']]"/>
        </doc>
  </root>
</xsl:template>

<xsl:template match="a">
  <relationship parent="{substring-before(., ',')}"
     child="{substring-after(., ',')}"
     doc="{substring-after(../a[contains(., 'Name: ')], 'Name: ')}"/>
</xsl:template>
</xsl:stylesheet>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--