Match XPath produce Error loading stylesheet: Parsing an XSLT stylesheet failed
<p>I'm getting this error while I try to put XPath into match.
What do I do wrong?
This is my XML example</p>

<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;?xml-stylesheet type="text/xsl" href="test.xsl"?&gt;
&lt;ROOT&gt;
  &lt;DOCUMENT name="HLSSD"&gt;
    &lt;TAG1 name="t1"&gt;
      text0
      &lt;ELEM1 id="el1"&gt;
      text1
      &lt;/ELEM1&gt;
      &lt;MYELEMENT/&gt;
      &lt;ELEM2 id="el2"&gt;
      text2
        &lt;ELEM2 id="el3"&gt;
        text3
        &lt;/ELEM2&gt;
        &lt;MYELEMENT/&gt;
        &lt;ELEM1 id="el4"&gt;
        text4
        &lt;/ELEM1&gt;
        &lt;MYELEMENT/&gt;
        text4.5
        &lt;ELEM1 id="el5"&gt;
        text5
        &lt;/ELEM1&gt;
        &lt;TAG3 name="t2"/&gt;
        text5.6
        &lt;ELEM2 id="el6"&gt;
        text6
        &lt;/ELEM2&gt;
      &lt;/ELEM2&gt;
      &lt;/TAG1&gt;
    &lt;TAG1 name="t3"&gt;
      &lt;ELEM1 id="el7"&gt;
      text7
      &lt;/ELEM1&gt;
      &lt;ELEM2 id="el8"&gt;
        text3
        &lt;/ELEM2&gt;
        &lt;MYELEMENT/&gt;
        &lt;ELEM1 id="el9"&gt;
        text4
        &lt;/ELEM1&gt;
        &lt;MYELEMENT/&gt;
        text4.5
        &lt;ELEM1 id="el10"&gt;
        text5
        &lt;/ELEM1&gt;
        &lt;TAG3 name="t4"/&gt;
        text5.6
        &lt;ELEM2 id="el11"&gt;
        text6
      &lt;/ELEM2&gt;
    &lt;/TAG1&gt;
    &lt;TAG2 name="t4"&gt;
    &lt;/TAG2&gt;
    &lt;TAG2 name="t5"&gt;
    &lt;/TAG2&gt;
    &lt;TAG1 name="t6"&gt;
    &lt;/TAG1&gt;
  &lt;/DOCUMENT&gt;
&lt;/ROOT&gt;
</code></pre>

<p>Here is my XSL code:</p>

<pre><code>&lt;xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
&lt;xsl:output method="html"/&gt;
&lt;xsl:template match="/"&gt;
 &lt;html&gt;
 &lt;body&gt;&lt;xsl:apply-templates/&gt;&lt;/body&gt;
 &lt;/html&gt;
 &lt;/xsl:template&gt;
&lt;xsl:template match="DOCUMENT"&gt;
  &lt;div&gt;
  &lt;h1&gt;&lt;xsl:value-of select="@name" /&gt;&lt;/h1&gt;
  &lt;xsl:apply-templates/&gt;
  &lt;/div&gt;
&lt;/xsl:template&gt;
&lt;xsl:template match="TAG1|TAG2|TAG3"&gt;
 &lt;div&gt;
  &lt;h1&gt;&lt;xsl:value-of select="name()" /&gt;&lt;/h1&gt;
  &lt;p&gt;&lt;xsl:value-of select="@name" /&gt;&lt;/p&gt;
  &lt;pre&gt;&lt;xsl:apply-templates/&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/xsl:template&gt;
&lt;xsl:template match="ELEM1|ELEM2"&gt;
    &lt;p&gt;(&lt;xsl:apply-templates/&gt;)&lt;/p&gt;
&lt;/xsl:template&gt;
&lt;xsl:template match="MYELEMENT/following-sibling::*[count(.|(TAG1|TAG2|TAG3|MYELEMENT)/preceding-sibling::*)=count((TAG1|TAG2|TAG3|MYELEMENT)/preceding-sibling::*)]"&gt;
&lt;div&gt;
  &lt;h1&gt;&lt;xsl:value-of select="name()" /&gt;&lt;/h1&gt;
  &lt;p&gt;&lt;xsl:apply-templates/&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/xsl:template&gt;
&lt;/xsl:stylesheet&gt; 
</code></pre>

<p>What I want is to find MYELEMENT and everything after at same level until first (one) of TAG1 or TAG2 or TAG3 or MYELEMENT or to be concrete I want to wrap with div tag every elements from MYELEMENT to first of TAG1 or TAG2 or TAG3 or MYELEMENT at same level or the end of parent element.</p>

<p>Output should be this:</p>

<pre><code>&lt;html&gt;
&lt;body&gt;
&lt;div&gt;
 &lt;h1&gt;DocName&lt;/h1&gt;
    &lt;div&gt;
     &lt;h1&gt;TAG1&lt;/h1&gt;
     &lt;p&gt;t1&lt;/p&gt;
     &lt;pre&gt;
      text0
      &lt;p&gt;(
      text1
      )&lt;/p&gt;
      **&lt;DIV&gt;**
      **&lt;H1&gt;MYELEMENT&lt;/H1&gt;**
      &lt;p&gt;(
      text2
        &lt;p&gt;(
        text3
        )&lt;/p&gt;
        **&lt;DIV&gt;**
        **&lt;H1&gt;MYELEMENT&lt;/H1&gt;**
        &lt;p&gt;(
        text4
        )&lt;/p&gt;
        **&lt;/DIV&gt;**
        **&lt;DIV&gt;**
        &lt;H1&gt;MYELEMENT&lt;/H1&gt;
        text4.5
        &lt;p&gt;(
        text5
        )&lt;/p&gt;
        **&lt;/DIV&gt;**
        &lt;div&gt;
         &lt;h1&gt;TAG3&lt;/h1&gt;
         &lt;p&gt;t2&lt;/p&gt;
         &lt;pre&gt;&lt;/pre&gt;
        &lt;/div&gt;
        text5.6
        &lt;p&gt;(
        text6
        )&lt;/p&gt;
      )&lt;/p&gt;
      **&lt;/DIV&gt;**
      &lt;/pre&gt;
    &lt;/div&gt;
    &lt;div&gt;
     &lt;h1&gt;TAG1&lt;/h1&gt;
     &lt;p&gt;t3&lt;/p&gt;
     &lt;pre&gt;
      &lt;p&gt;(
      text7
      )&lt;/p&gt;
      &lt;p&gt;(
        text3
        )&lt;/p&gt;
        **&lt;DIV&gt;**
        **&lt;H1&gt;MYELEMENT&lt;/H1&gt;**
        &lt;p&gt;(
        text4
        )&lt;/p&gt;
        **&lt;/DIV&gt;**
        **&lt;DIV&gt;**
        **&lt;H1&gt;MYELEMENT&lt;/H1&gt;**
        text4.5
        &lt;p&gt;(
        text5
        )&lt;/p&gt;
        **&lt;/DIV&gt;**
        &lt;div&gt;
         &lt;h1&gt;TAG3&lt;/h1&gt;
         &lt;p&gt;t4&lt;/p&gt;
         &lt;pre&gt;&lt;/pre&gt;
        &lt;/div&gt;
        text5.6
        &lt;p&gt;(
        text6
      )&lt;/p&gt;
    &lt;/pre&gt;
    &lt;/div&gt;
    &lt;div&gt;
     &lt;h1&gt;TAG2&lt;/h1&gt;
     &lt;p&gt;t5&lt;/p&gt;
     &lt;pre&gt;
    &lt;/pre&gt;
    &lt;/div&gt;
    &lt;div&gt;
     &lt;h1&gt;TAG2&lt;/h1&gt;
     &lt;p&gt;t6&lt;/p&gt;
     &lt;pre&gt;
    &lt;/pre&gt;
    &lt;/div&gt;
    &lt;div&gt;
     &lt;h1&gt;TAG1&lt;/h1&gt;
     &lt;p&gt;t7&lt;/p&gt;
     &lt;pre&gt;
    &lt;/pre&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>