|
next
|
Subject: XSLT and MS Access 2007 Optional Tags Author: Craig Berman Date: 31 Dec 2008 01:25 PM
|
I'm sure I'm doing something wrong, or missing a keyword someplace, but here goes. I have something that normally looks like this:
<Trade>
<ID>12345</ID>
<MYNOTES>
<NOTES>
<INDEX>1</INDEX>
<XNOTE>THIS IS NOTE 1</XNOTE>
</NOTES>
<NOTES>
<INDEX>2</INDEX>
<XNOTE>THIS IS NOTE 2</XNOTE>
</NOTES>
</MYNOTES>
<CUSIP>123456789</CUSIP>
</Trade>
The XSL I have works fine, and handles the multiple notes in MYNOTES just fine too (i'm actually please with stylus for getting a novice like me through that). Now, every once in a while I get a XML record with NO MYNOTES at all. How do I change the XSL to declare that this may happen sometime. I presume there is something in the for-each select statement, but right now access gets "annoyed" at not having anything.
If I haven't given you enough information, i apologize, the actual piece of data is pretty big, as is the xsl. If needed, though, I can get it.
Many thanks.
Craig
|
next
|
Subject: XSLT and MS Access 2007 Optional Tags Author: Craig Berman Date: 05 Jan 2009 08:51 AM
|
Okay, here goes:
<xsl:template match="/">
<TradeTable>
<ShortNoteData>
<xsl:for-each select="a:BatchFeed/a:TradeFeed/a:Common/a:ShortNotes/a:ShortNote">
<Trade_ShortNotes>
<Index>
<xsl:value-of select="a:Index"/>
</Index>
<Text>
<xsl:value-of select="a:Text"/>
</Text>
<TransactionNumber>
<xsl:value-of select="../../a:TransactionNumber"/>
</TransactionNumber>
<AsOfTradeDate>
<xsl:value-of select="../../a:AsOfTradeDate"/>
</AsOfTradeDate>
<TransactionType>
<xsl:value-of select="../../a:TransactionType"/>
</TransactionType>
</Trade_ShortNotes>
</xsl:for-each>
</ShortNoteData>
In access this creates a table called Trade_ShortNotes, which contains the fields above. The entire XSLT creates a bunch of tables. The problem occurs when I load a pile of XML, but none of the records contains the tag <ShortNotes>... if *any* record in a batch contains the shortnote tage then I'm fine, if NONE do, then it seems to want to create a blank root name table ie: TradeTable, and put nothing in it. This may be an access quirk, and I'll admit, this is a rarity based upon the data - but if there is a way to specify to XSL - "Hey, here's how to deal with this tag, but you might not see it at all", I'd like to do that.
|
|
|
|