Jump to content

mysacramento

Members
  • Posts

    3
  • Joined

  • Last visited

mysacramento's Achievements

Newbie

Newbie (1/7)

0

Reputation

  1. mysacramento

    NaN

    To verify if a value is numeric (whole or fractional number) is better to use:string(number(@value)) != 'NaN'ornormalize-space(@value) != 'NaN'and why?Thanks.
  2. Thank you very much for your response. The proposed code is actually a better interpretation of my current code, probably more efficient too. However I still have the original problem:Let me show you a practical example of what I'm trying to accomplish by listing an input XML and the aspected result:Input XML (original):<detailsection> <detail> <item name="tagged">false</item> <A app="x" id="00401" part="1" factor="0" inc="Some text"> <B> <item name="value">1</item> </B> </A> </detail> <detail> <item name="tagged">false</item> <A app="x" id="99991" part="0" factor="0" inc="Some text"> <B> <item name="value">900</item> </B> </A> </detail> <detail> <item name="tagged">false</item> <A app="x" id="00401" part="1" factor="0" inc="Some text"> <B> <item name="value">100</item> </B> </A> </detail></detailsection> Output XML (after transformation): <detailsection> <detail> <item name="tagged">false</item> <A app="x" id="00401" part="1" factor="0" inc="Some text"> <B> <item name="value">101</item> </B> </A> </detail> <detail> <item name="tagged">false</item> <A app="x" id="99991" part="0" factor="0" inc="Some text"> <B> <item name="value">900</item> </B> </A> </detail></detailsection> The output result should combine the 1st and 3rd node together since they are the same. By "combine" I mean keeping the <datail> node the same except for the <item name="value"> that will report the total of the 2 nodes combined together (1 + 100). If later I find some more node that match node #1 (or #2 for that matter) I would like to update the existing <item name="value"> value. Any idea about how to approch this problem during the XML transformation process (XSLT or other techniques)?Thank you very much for your advices.
  3. Hello,I want to ask you guys a solution in XSLT about how to consolidate several same XML nodes into one. For instance:<xsl:template name="details"><details><xsl:for-each select="detail"><xsl:sort select="A/@app"/><xsl:sort select="A/@id"/><xsl:sort select="A/@part"/><xsl:sort select="A/@factor"/><xsl:sort select="A/@inc"/><xsl:call-template name = "copydetail"/></xsl:for-each></details></xsl:template>Instead <xsl:call-template name = "copydetail"/> which copy the current node into the <detail> node I would like to update the same node if already exist in the <detail>. Is it possible?Unfortunately I can't use the position() function because of the sorting, how can I keep track of the last processed node? I guess my logic will say if processed node = current node then update processed node, otherwise write (output) the processed node because I won't find any more of this nodes in my file (because of the sorting). Using key() instead the sort works too but I have the same problem, how can I group all of the nodes in my key into one single node? Maybe with 2 steps transformation process?Hope I could explained the problem clear enough.Thanks.
×
×
  • Create New...