<?xml version="1.0"?>
<sparql>
<head>
<variable name="subnode"/>
</head>
<results>
<result>
<binding name="subnode">
<uri>http://data.kasabi.com/dataset/nxp-products/basicType/LPC1114FA44</uri>
</binding>
</result>
<result>
<binding name="subnode">
<uri>http://data.kasabi.com/dataset/nxp-products/productTree/1498</uri>
</binding>
</result>
</results>
</sparql>
We want to extract all identifiers for each URI on a newline saved as text. So expected output for this sample is
LPC1114FA44 1498
There are multiple ways to solve this but the solution below is a pretty easy one. It string-joins the last part of the tokenized uri with a newline character.
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text" encoding="UTF-8" media-type="text/plain"/>
<xsl:template match="/">
<xsl:variable name="uris" select="/sparql/results/result/binding/uri"/>
<xsl:value-of select="string-join(for $uri in $uris return tokenize($uri, '/')[last()], '
')"/>
</xsl:template>
</xsl:stylesheet>
No comments:
Post a Comment