Note that there are some explanatory texts on larger screens.

plurals
  1. POLast item in a node
    text
    copied!<p>I'm trying to find the last item in a node, so I can specify whether to specify a comma or not.</p> <pre><code>&lt;?xml version="1.0" encoding="utf-16"?&gt; &lt;?xml-stylesheet href="data.xsl" type="text/xsl"?&gt; &lt;page generated="2011-04-19T19:22:21+00:00"&gt; &lt;realm generated="2011-04-19T14:36:41-04:00" name="H-Bloodhoof"&gt; &lt;item id="24033" name="Solid Star of Elune"&gt; &lt;market&gt;230000&lt;/market&gt; &lt;quantity&gt;0&lt;/quantity&gt; &lt;reagentprice&gt;39204&lt;/reagentprice&gt; &lt;/item&gt; &lt;item id="5976" name="Guild Tabard"&gt; &lt;market&gt;60000&lt;/market&gt; &lt;quantity&gt;1&lt;/quantity&gt; &lt;marketaverage&gt;61162&lt;/marketaverage&gt; &lt;marketstddev&gt;19735&lt;/marketstddev&gt; &lt;lastseen&gt;2011-04-19T14:30:50-04:00&lt;/lastseen&gt; &lt;/item&gt; &lt;item id="24036" name="Flashing Living Ruby"&gt; &lt;market&gt;1100000&lt;/market&gt; &lt;quantity&gt;0&lt;/quantity&gt; &lt;reagentprice&gt;99617&lt;/reagentprice&gt; &lt;/item&gt; &lt;item id="23108" name="Timeless Shadow Draenite"&gt; &lt;market&gt;20000&lt;/market&gt; &lt;quantity&gt;0&lt;/quantity&gt; &lt;marketaverage&gt;20000&lt;/marketaverage&gt; &lt;marketstddev&gt;0&lt;/marketstddev&gt; &lt;reagentprice&gt;6500&lt;/reagentprice&gt; &lt;lastseen&gt;2011-04-15T00:46:15-04:00&lt;/lastseen&gt; &lt;/item&gt; &lt;/realm&gt; &lt;/page&gt; </code></pre> <p>Here's xsl:</p> <pre><code>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt; &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt; &lt;xsl:output method="text" /&gt; &lt;xsl:template match="realm"&gt; &lt;xsl:apply-templates &gt; &lt;xsl:with-param name="id" select="@id" /&gt; &lt;/xsl:apply-templates&gt; &lt;/xsl:template&gt; &lt;xsl:template match="item"&gt; &lt;xsl:param name="id" /&gt; &lt;xsl:text&gt;addonTable.marketdata[&lt;/xsl:text&gt;&lt;xsl:value-of select="@id" /&gt;&lt;xsl:text&gt;] = {&lt;/xsl:text&gt; &lt;xsl:text&gt;["market"] =&lt;/xsl:text&gt;&lt;xsl:value-of select="market" /&gt; &lt;xsl:if test="not(following-sibling::*)"&gt;&lt;xsl:text&gt;,&lt;/xsl:text&gt;&lt;/xsl:if&gt; &lt;xsl:text&gt;["quantity"] =&lt;/xsl:text&gt;&lt;xsl:value-of select="quantity" /&gt; &lt;xsl:if test="not(following-sibling::*)"&gt;&lt;xsl:text&gt;,&lt;/xsl:text&gt;&lt;/xsl:if&gt; &lt;xsl:text&gt;["marketaverage"] =&lt;/xsl:text&gt;&lt;xsl:value-of select="marketaverage" /&gt; &lt;xsl:if test="not(following-sibling::*)"&gt;&lt;xsl:text&gt;,&lt;/xsl:text&gt;&lt;/xsl:if&gt; &lt;xsl:text&gt;["marketstddev"] =&lt;/xsl:text&gt;&lt;xsl:value-of select="marketstddev" /&gt; &lt;xsl:if test="not(following-sibling::*)"&gt;&lt;xsl:text&gt;,&lt;/xsl:text&gt;&lt;/xsl:if&gt; &lt;xsl:text&gt;["reagentprice"] =&lt;/xsl:text&gt;&lt;xsl:value-of select="reagentprice" /&gt; &lt;xsl:if test="not(following-sibling::*)"&gt;&lt;xsl:text&gt;,&lt;/xsl:text&gt;&lt;/xsl:if&gt; &lt;xsl:text&gt;["lastseen"] =&lt;/xsl:text&gt;&lt;xsl:value-of select="lastseen" /&gt; &lt;xsl:if test="not(following-sibling::*)"&gt;&lt;xsl:text&gt;,&lt;/xsl:text&gt;&lt;/xsl:if&gt; &lt;xsl:text&gt;}&lt;/xsl:text&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p>So right now it's checking for the last sibling of Item where I would like it do be the last element within the item.</p> <pre><code>addonTable.marketdata[24033] = {["market"] =230000["quantity"] =0["marketaverage"] =["marketstddev"] =["reagentprice"] =39204["lastseen"] =} addonTable.marketdata[5976] = {["market"] =60000["quantity"] =1["marketaverage"] =61162["marketstddev"] =19735["reagentprice"] =["lastseen"] =2011-04-19T14:30:50-04:00} addonTable.marketdata[24036] = {["market"] =1100000["quantity"] =0["marketaverage"] =["marketstddev"] =["reagentprice"] =99617["lastseen"] =} addonTable.marketdata[23108] = {["market"] =20000,["quantity"] =0,["marketaverage"] =20000,["marketstddev"] =0,["reagentprice"] =6500,["lastseen"] =2011-04-15T00:46:15-04:00,} </code></pre> <p>It should look like this and it would be great if it doesn't print the empty values.</p> <pre><code> addonTable.marketdata[24033] = {["market"] =230000,["quantity"] =0,["marketaverage"] =,["marketstddev"] =,["reagentprice"] =39204,["lastseen"] =} addonTable.marketdata[5976] = {["market"] =60000,["quantity"] =1,["marketaverage"] =61162,["marketstddev"] =19735,["reagentprice"] =,["lastseen"] =2011-04-19T14:30:50-04:00} addonTable.marketdata[24036] = {["market"] =1100000,["quantity"] =0,["marketaverage"] =,["marketstddev"] =,["reagentprice"] =99617,["lastseen"] =} addonTable.marketdata[23108] = {["market"] =20000,["quantity"] =0,["marketaverage"] =20000,["marketstddev"] =0,["reagentprice"] =6500,["lastseen"] =2011-04-15T00:46:15-04:00} </code></pre> <p><strong>Thanks for looking!</strong></p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload