Можно ли установить приоритет для предложения «group-start-with»?

Класс Activator выполняет это задание в .net, и этот метод очень полезен для сценариев зависимостей инъекций.

string NameSpace = "ProjectName.YourNameSpace";
string ProbeClass = "CLassName";

ObjectHandle ProberHandle = Activator.CreateInstance(NameSpace, ProbeClass) as ObjectHandle;
ClassName Prober = ProberHandle.Unwrap() as ClassName;

Убедитесь, что вы развернете перед типом каста, иначе он даст ошибку преобразования.

1
задан skaffman 26 July 2010 в 15:18
поделиться

1 ответ

Сохраняя стиль вашей таблицы стилей, эта таблица стилей:

<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/">
 <output>
  <xsl:for-each-group select="root/*" group-starting-with=
    "bbb|ccc[preceding-sibling::*[1][not(self::bbb)]]">
    <group>
      <xsl:apply-templates select=
        "current-group()[self::bbb or self::ccc]"/>
      <groupcontent>
        <xsl:apply-templates select=
          "current-group()[not(self::bbb) and not (self::ccc)]"/>
      </groupcontent>
    </group>
  </xsl:for-each-group>
 </output>
</xsl:template>
<xsl:template match="bbb">
 <header>
  <xsl:value-of select="."/>
 </header>
</xsl:template>
<xsl:template match="ccc">
 <subheader>
  <xsl:value-of select="."/>
 </subheader>
</xsl:template>
<xsl:template match="aaa">
 <p>
  <xsl:value-of select="."/>
 </p>
</xsl:template>

Вывод:

<output>
    <group>
        <header>Foo 1</header>
        <groupcontent>
            <p>xxxxxxxx</p>
            <p>xxxxxxxx</p>
            <p>xxxxxxxx</p>
        </groupcontent>
    </group>
    <group>
        <header>Foo 2</header>
        <subheader>Foo 2.1</subheader>
        <groupcontent>
            <p>xxxxxxxx</p>
            <p>xxxxxxxx</p>
            <p>xxxxxxxx</p>
        </groupcontent>
    </group>
    <group>
        <header>Foo 3</header>
        <subheader>Foo 3.1</subheader>
        <groupcontent>
            <p>xxxxxxxx</p>
            <p>xxxxxxxx</p>
            <p>xxxxxxxx</p>
        </groupcontent>
    </group>
    <group>
        <subheader>Foo 4</subheader>
        <groupcontent>
            <p>xxxxxxxx</p>
            <p>xxxxxxxx</p>
            <p>xxxxxxxx</p>
        </groupcontent>
    </group>
</output>
2
ответ дан 2 September 2019 в 22:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: