Учитывая следующие URL-адреса, как определить, сколько уровней находится на глубине пути?
https://example.com/{product}/
https://example.com/(product}/{vendor}
https://example.com/{product}/{vendor}/{location}
Это переменные строки: product
, vendor
, location
У меня есть этот код, который я использую для путей с постоянными значениями:
<xsl:variable name="itemURL">
<xsl:value-of select="sitemap:loc"/>
</xsl:variable>
<td>
<xsl:if test="contains($itemURL, '/Section/')">
<xsl:attribute name="class">section</xsl:attribute>
</xsl:if>
<xsl:if test="contains($itemURL, '/Category/')">
<xsl:attribute name="class">category</xsl:attribute>
</xsl:if>
<xsl:if test="contains($itemURL, '/Product/')">
<xsl:attribute name="class">product</xsl:attribute>
</xsl:if>-->
<a href="{$itemURL}">
<xsl:value-of select="sitemap:loc"/>
</a>
</td>
CSS для этих простых констант:
.section {
font-weight: 600;
}
.category {
font-weight: 500;
padding-left: 15px;
}
.product {
padding-left: 30px;
font-style: italic;
}
Что я хочу сделать, это сделать отступ или добавить маркер или что-то с помощью css позже, когда список URL перейдет на другой уровень.По сути, я хочу вложить это так, чтобы людям было легче читать.Должен ли я использовать регулярные выражения здесь или есть лучший способ, который чистый XSLT?