Учитывая, что ваши свойства имеют такую форму
<entry key="field.Article.AclFlag.name">Object right type</entry>
Вы можете определить ключ для поиска entry
элементов по их атрибуту key
, и я вижу, что такой ключ уже существует в вашем XSLT
<xsl:key name="k1" match="entry" use="@key"/>
Далее убедитесь, что у вас есть переменная ссылка на ваш внешний XML-документ
<xsl:variable name="map-doc" select="document('../transform/Properties.properties.xml')"/>
Затем, чтобы найти значение из свойств, вы можете сделать это (очевидно, заменив второйаргумент с фактическим значением, которое вы хотите найти):
<xsl:variable name="test" select="'enum.Acls.name'" />
<xsl:value-of select="key('k1', $test, $map-doc)" />
Обратите внимание, что эта форма функции key
с третьим параметром действительна только в XSLT 2.0.Если бы вы сделали <xsl:value-of select="key('k1', $test) />
, он бы искал значение во входном XML, а не ваши XML-свойства.
В XSLT 1.0 вы могли бы сделать это, чтобы изменить контекст документа для ключа
<xsl:variable name="test" select="'enum.Acls.name'" />
<xsl:for-each select="$map-doc">
<xsl:value-of select="key('k1', $test)" />
</xsl:for-each>
Либо сделать это без ключа
<xsl:variable name="test" select="'enum.Acls.name'" />
<xsl:value-of select="$map-doc//entry[@key=$test]" />