Subject: Re: [xsl] Tokenizing mixed content From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 17 May 2019 13:29:32 -0000 |
I am working on a conversion script transforming from a prior DTD to a new DTD, and as part of this transformation, we are hoping to parse some mixed content into separate nested elements. The content is | delimited, but I am having a tough time coming up with a way to group the text and sibling elements. What follows are some permutations of input and expected output:
INPUT:
<argument> "AUTO | NONE | METADATA"</argument>
OUTPUT:
<argument><choice>AUTO</choice><choice>NONE</choice><choice>METADATA</choice> "</argument>
INPUT:
<argument><userSuppliedValue>dimension</userSuppliedValue> | <userSuppliedValue>dimension</userSuppliedValue>%</argument>
OUTPUT:
<argument><choice><userSuppliedValue>dimension</userSuppliedValue></choice><c hoice><userSuppliedValue>dimension></userSuppliedValue>%</choice></argument>
INPUT:
<argument>#BYVAL<userSuppliedValue>n</userSuppliedValue> | #BYVAL(<userSuppliedValue>BY-variable-name</userSuppliedValue>)</argument>
OUTPUT:
<argument><choice>#BYVAL<userSuppliedValue>n</userSuppliedValue></choice><cho ice>#BYVAL(<userSuppliedValue>BY-variable-name</userSuppliedValue>)</choice>< /argument>
Ive got access to XSL 2, and possibly XSL3 if necessary.
A two pass transformation that first processes text nodes to "convert" the pipe character into an element (e.g. <pipe/>) and then in second step uses for-each-group group-ending-with="pipe" should help.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Tokenizing mixed content, Edward Porter edward | Thread | Re: [xsl] Tokenizing mixed content, Martin Honnen martin |
[xsl] Tokenizing mixed content, Edward Porter edward | Date | Re: [xsl] Tokenizing mixed content, Martin Honnen martin |
Month |