Я новичок в xslt. У меня есть следующие xml и xslt, которые мне нужно преобразовать в html с помощью XslCompiledTranform. я следующий XMLпередать атрибут значения тегов xml с помощью xslt
<ref-list id="RL10">
<label>
<bold>7.0</bold>
</label>
<title>
<bold>References</bold>
</title>
<ref id="R66" content-type="references">
<label>2</label>
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Chown,</surname>
<given-names>Bill</given-names>
</name>
</person-group>, and
<person-group person-group-type="author">
<name>
<surname>Lange</surname>
<given-names>Michelle</given-names>
</name>
</person-group>. “
<source>Modernizing System Development: Requirements-Based, Model-Driven Design, Implementation and Test</source>.”
<publisher-name>Mentor Graphics Corp., ERTS</publisher-name>,
<month>Feb.</month>
<year>2012</year>.
</mixed-citation></ref>
<ref id="R67" content-type="references">
<label>3</label>
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Blyler,</surname>
<given-names>John</given-names>
</name>
</person-group>. “
<article-title>Model-Driven Development Is Key to Low Power</article-title>.”
<source>Chip Design Magazine - JB’s Circuit</source>,
<month>Dec.</month>
<day>6</day>,
<year>2012</year>.
<uri xlink:href="http://www.chipdesignmag.com/blyler/2012/12/06/model-driven-development-key-to-low-power/">http://www.chipdesignmag.com/blyler/2012/12/06/model-driven-development-key-to-low-power/</uri>.
</mixed-citation>
</ref>
</ref-list>
У меня есть следующие
XSLT<xsl:template match="ref-list/ref">
<html>
<head></head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="ref-list/ref">
<p>
<xsl:value-of select="label"/>
<xsl:for-each select="mixed-citation">
<xsl:for-each select="person-group/name">
<xsl:value-of select="given-names"/>
<xsl:value-of select="surnames"/>
</xsl:for-each>
<xsl:text>,</xsl:text>
<xsl:value-of select="source"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="publisher-name"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="day"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="month"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="year"/>
<xsl:text>,</xsl:text>
<xsl:for-each select="uri">
<xsl:value-of select="."/>
</xsl:for-each>
<xsl:text>,</xsl:text>
<xsl:value-of select="article-title"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="publisher-loc"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="volume"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="issue"/>
</xsl:for-each>
</p>
</xsl:template>
Я должен преобразовать мой XML в HTML с использованием XSLT. Но при преобразовании он говорит, что «xlink» является необъявленным префиксом. Я не знаю, как его разобрать. Мне нужен вывод, который обрабатывает тэг uri, имеющий xlink как его атрибут. Я не знаю, как разбирать любой атрибут любого тега xml. Может ли кто-нибудь объяснить, как анализировать любые теги xml, имеющие свои атрибуты?
Смотрите эти ресурсы: http://stackoverflow.com/questions/8352947/passing-xml-attribute-value-to-html-atrribute-value-using-xslt Http: // stackoverflow.com/questions/13090401/using-xsl-to-pass-an-xml-attribute-as-an-id-into-html http://stackoverflow.com/questions/6050044/how-do -i-pass-a-xml-attribute-to-xslt-parameter –
Я не знаю, где я иду не так, но все же я получаю ту же ошибку. Ошибка говорит, что xlink не объявлен в Xml. Есть способ исключить префиксы, но я не знаю, как это сделать. Может быть, это может решить мою проблему. Есть ли способ в xslt, где я могу исключить префиксы i.e. xlink? – user
Это называется пространством имен. Корневой тег вашего xml должен содержать 'xmlns: xlink =" http://www.w3.org/1999/xlink ". Если нет, то он должен включаться каждый раз, когда вы добавляете в свой тег 'xlink: href'. –