Попытка получить значения атрибутов внутри элемента, используя for-each в xslt. Может кто-нибудь помочь, чтобы получить желаемый результат, как, я получаю только имя = «ID» и введите = «строка» для всех <property name="id" type="string"/>
Xslt - для каждого не создавая желаемые атрибуты внутри элемента
Входной Xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:Example xmlns:ns2="http://example.com/internal">
<inspection-result version="1">
<form title="Form 1" history="true">
<property name="id" type="string"/>
<property name="name" type="string"/>
<property name="default" type="string"/>
<property name="time" type="string"/>
<property name="status" type="string"/>
<action name="click"/>
</form>
<next>Form2</next>
</inspection-result>
</ns2:Example>
XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns2="http://example.com/internal"
exclude-result-prefixes="ns2">
<xsl:template match="inspection-result">
<inspection-result>
<xsl:attribute name="version"><xsl:value-of select="//inspection-result/@version"/></xsl:attribute>
<form>
<xsl:attribute name="title"><xsl:value-of select="//form/@title" /></xsl:attribute>
<xsl:attribute name="history"><xsl:value-of select="//form/@history" /></xsl:attribute>
<xsl:for-each select="//form/property">
<property>
<xsl:attribute name="name"><xsl:value-of select="//form/property/@name" /></xsl:attribute>
<xsl:attribute name="type"><xsl:value-of select="//form/property/@type" /></xsl:attribute>
</property>
</xsl:for-each>
<action>
<xsl:attribute name="name"><xsl:value-of select="//action/@name" /></xsl:attribute>
</action>
</form>
<next>
<xsl:value-of select="//next" />
</next>
</inspection-result>
</xsl:template>
</xsl:stylesheet>
Ожидаемый выход:
<inspection-result version="1">
<form title="Form 1" history="true">
<property name="id" type="string"/>
<property name="printerName" type="string"/>
<property name="default" type="string"/>
<property name="createdTimeStamp" type="string"/>
<property name="status" type="string"/>
<action name="click"/>
</form>
<next>Form2</next>
</inspection-result>
спасибо lot..couldn't ответ сразу, был wokring, чтобы получить поток для моей службы закончил с использованием this..still пытается полностью узнать :) XSLT – Ranjan