Это будет моя первая попытка написания XSLT, который действительно делает что-то значимое и помогает мне в работе.Я уже писал xpath xpression's и довольно хорошо с ними справился, просто нужно промокнуть ногами с XSLT, чтобы действительно начать готовить.В любом случае,
У меня есть файл XML, в котором есть определенные узлы с атрибутами value
.Я хочу, чтобы все узлы с атрибутами name
распечатывали их атрибуты value
в текстовом файле ...
Вот что у меня есть ... Пример XML
<?xml version="1.0"?>
<dataTemplateSpecification>
<templates>
<template>
<elements>
<element id="element0" name="PatientId" display="Patient ID" dataType="String" visable="true" readOnly="false" value="207">
<mapping path="//Template/TemplateData/ACOData/PATIENT_ID" />
<validation>
<rules>
<rule id="r0" test="#element0.value == ''">
<fail>
<html>
<b>Patient ID is null, value must be present</b>
</html>
</fail>
</rule>
</rules>
</validation>
</element>
<element id="element1" name="EncounterId" display="Encounter ID" dataType="String" visable="true" readOnly="false" value="144">
<mapping path="//Template/TemplateData/ACOData/FOCUSED_READMISSIONS_ID" />
<validation>
<rules>
<rule id="r0" test="#element0.value == ''">
<fail>
<html>
<b>Patient ID is null, value must be present</b>
</html>
</fail>
</rule>
</rules>
</validation>
</element>
</template></template></dataTemplateSpecification>
Вот самый базовый XSLT, который я написал ...
<?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" exclude-result-prefixes="msxsl">
<xsl:output method="text" indent="yes"/>
<xsl:template match="//dataTemplateSpecification/templates/template/elements/element[@name=*]">
<xsl:copy>
<xsl:apply-templates select="@value"/>
</xsl:copy>
</xsl:template>
Я буду продолжать ломать голову над этим, и если вы, ребята, сможете помочь вообще, я буду вечнопризнательна.Я, конечно, опубликую решение для любого, кто читает это и также заинтригован этим вопросом, если я найду решение самостоятельно.Спасибо.