Subject: [xsl] How to use parse-xml-fragment with a string that contains a less-than symbol (and the less-than symbol is not part of a start- or end-tag)? From: "Roger L Costello costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 22 Feb 2021 17:30:46 -0000 |
Hi Folks, I want to parse, as XML, the contents of this comment: <!--abc<style>hello, world</style>def--> The contents of that comment is not well-formed XML, so I extracted the contents and placed a <wrapper> element around it: <xsl:variable name="wrapped-comment" as="xs:string"> <xsl:value-of select="concat('<wrapper>', comment()/data(), '</wrapper>')"/> </xsl:variable> Then I applied parse-xml-fragment to the variable: <xsl:sequence select="parse-xml-fragment($wrapped-comment)" /> That produced the desired result: <wrapper>abc<style>hello, world</style>def</wrapper> Yea! Pretty cool. (Thanks Martin) However, the actual comment that I have contains some nastiness: after the <style> end-tag is this string: <![endif] So, the actual comment is this: <!--abc<style>hello, world</style><![endif]--> Eek! When I apply parse-xml-fragment (after wrapping the comment's content in a <wrapper> element) I get this error: First argument to parse-xml-fragment() is not a well-formed and namespace-well-formed XML fragment. That makes perfect sense since the unescaped '<' at the end of the comment is causing problems. Is there an elegant, simple solution to this problem, without manually changing <![endif] to <![endif]? /Roger
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Outputting White Space On, Bauman, Syd s.bauman | Thread | Re: [xsl] How to use parse-xml-frag, Michael Kay mike@xxx |
Re: [xsl] Outputting White Space On, Don Smith dsmith_loc | Date | Re: [xsl] How to use parse-xml-frag, Michael Kay mike@xxx |
Month |