Это XML-документ.
<w:document xmlns:w="w">
<w:body>
<w:p>
<w:pPr>
<w:pStyle w:val="Normal"/>
</w:pPr>
<w:r>
<w:t>
Para1
</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading1"/>
</w:pPr>
<w:r>
<w:t>
Para2
</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading2"/>
</w:pPr>
<w:r>
<w:t>
Para3
</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading1"/>
</w:pPr>
<w:r>
<w:t>
Para4
</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading2"/>
</w:pPr>
<w:r>
<w:t>
Para5
</w:t>
</w:r>
</w:p>
<w:tbl>
<w:tr>
<w:tc>
<w:p>
<w:r>
<w:t>
Para6
</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:p>
<w:r>
<w:t>
Para7
</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
</w:tbl>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading1"/>
</w:pPr>
<w:r>
<w:t>
Para8
</w:t>
</w:r>
</w:p>
<w:tbl>
<w:tr>
<w:tc>
<w:p>
<w:r>
<w:t>
Para9
</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:p>
<w:r>
<w:t>
Para10
</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
</w:tbl>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading2"/>
</w:pPr>
<w:r>
<w:t>
Para11
</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
Теперь,
Я хочу сначала найти <w:p><w:pPr><w:pStyle>
, значение атрибута которого w:val
начинается с "Заголовок».
После обнаружения этого присвойте значение этого атрибута (например, Heading1, которое находится во втором <w:p><w:pPr><w:pStyle>
) переменной (например, variableName в файле xslt).
Назначьте эту переменную (например, topLevelHeadings в файле xslt) в другую конкретную переменную, где я хотел.
Это Xslt-файл для вашей справки...
<xsl:template match="*">
<Document>
<xsl:variable name="variableName" select="?"/> <!-- here i want the stuff -->
<xsl:variable name="topLevelHeadings" select = "//w:body/w:p[w:pPr[w:pStyle(@w:val,'$variableName')]]"/>
<xsl:choose>
<xsl:when test="$topLevelHeadings">
<!-- Do things here -->
</xsl:when>
<xsl:otherwise>
<!-- Do things here -->
</xsl:otherwise>
</xsl:choose>
</Document>
</xsl:template>
Пожалуйста, помогите мне выйти из этого вопроса ...