У меня есть * .xml с такими элементами, как:
<app-method name="leave-accrual-status-details" kind="enquiry">
<title>...</title>
<required-roles>
<role name="authenticated"/>
</required-roles>
<asd>
<param name="..." datatype="dt:int" control="hidden" call-kind="..." data-kind="..."/>
</asd>
<data-engine sp="spLeaveAccrualStatusDetails">
...
</data-engine>
<wia>
...
</wia>
</app-method>
И создание нового .xml-документа (выбираются только элементы "app-method"). Я делаю этовот так: ( .xsl)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="xml" encoding="utf-8" indent="no"></xsl:output>
<xsl:template match="/">
<xsl:for-each select="//app-method">
<xsl:if test='./required-roles/role[@name="administrator"]'>
<xsl:copy-of select="." />
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Работает отлично, но ... Есть ли способ сделать это без "xsl: copy-of"?Думаю, мне нужно использовать что-то вроде «имя-узла (« blabla »)» и значение-из? .. И как выбрать набор параметров методов (различных)?(param name = "имя параметра"), да, мне нужно использовать "ключ", но я не могу найти хорошие образцы с ним
Большое спасибо
PS При преобразовании xml-> xml у меня естьиспользовать Far ("xsl in.xml transform.xsl out.xml"), потому что при попытке сделать это из cdm.exe возникает какая-то странная ошибка, мне немного не нравится FAR, есть ли другой способ конвертировать xmls?