У меня есть XML-файл, который очень длинный, но вот выдержка из кадра.
<?xml version="1.0" encoding="UTF-8"?>
<dicom>
<attr tag="00020000" vr="UL" len="4">190</attr>
<attr tag="00020001" vr="OB" len="2">00\01</attr>
<attr tag="00020002" vr="UI" len="30">1.2.840.10008.5.1.4.1.1.88.11</attr>
<attr tag="00080090" vr="PN" len="14">Roberts^^^Dr.^</attr>
</dicom>
У меня также есть файл xslt, который тоже очень длинный, но вот выдержка.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
<xsl:output method="xml" indent="yes" media-type="text/xml-fo" encoding="UTF-8"/>
<!-- the stylesheet processing entry point -->
<xsl:template match="/">
<xsl:apply-templates select="dicom"/>
</xsl:template>
<xsl:template match="dicom">
TEST
<xsl:variable name="name" select="attr[@tag='00080090']"/>
<xsl:value-of select="$name"/>
</xsl:template>
</xsl:stylesheet>
У меня два вопроса.
1. Когда я применяю xml к xslt, я ничего не получаю. После тестирования выясняется, что шаблон dicom даже никогда не вызывается. Почему это?
2. Если я изменю критерии соответствия для шаблона dicom с «dicom» на «/», то он будет вызван, но переменная установлена неправильно.
Я знаю, что это не даст действительный XML, я просто пытаюсь понять, что происходит, и что не так с моим пониманием xslt.
Спасибо !!!