我需要在 XML 中获取标签
I need to get a tag in XML
我需要获取包含在模块“Lenguajes de marcas y sistemas de gestión de información”中的课程名称。
我尝试这样做,但我不知道如何link彼此。
结果应该是:
Administración de Sistemas Informáticos en Red
Desarrollo de Aplicaciones Web
我已经开发了这个,谢谢你的帮助。
XML:
<?xml version="1.0" encoding="UTF-8"?>
<ies>
<nombre>IES Abastos</nombre>
<web>http://www.iesabastos.org</web>
<ciclos>
<ciclo id="ASIR">
<nombre>Administración de Sistemas Informáticos en Red</nombre>
<grado>Superior</grado>
<decretoTitulo año="2009" />
</ciclo>
<ciclo id="DAW">
<nombre>Desarrollo de Aplicaciones Web</nombre>
<grado>Superior</grado>
<decretoTitulo año="2010" />
</ciclo>
<ciclo id="SMR">
<nombre>Sistemas Microinformáticos y Redes</nombre>
<grado>Medio</grado>
<decretoTitulo año="2008" />
</ciclo>
</ciclos>
<modulos>
<modulo id="0228">
<nombre>Aplicaciones web</nombre>
<curso>2</curso>
<horasSemanales>4</horasSemanales>
<ciclo>SMR</ciclo>
</modulo>
<modulo id="0372">
<nombre>Gestión de bases de datos</nombre>
<curso>1</curso>
<horasSemanales>5</horasSemanales>
<ciclo>ASIR</ciclo>
</modulo>
<modulo id="0373">
<nombre>Lenguajes de marcas y sistemas de gestión de información</nombre>
<curso>1</curso>
<horasSemanales>3</horasSemanales>
<ciclo>ASIR</ciclo>
<ciclo>DAW</ciclo>
</modulo>
<modulo id="0376">
<nombre>Implantación de aplicaciones web</nombre>
<curso>2</curso>
<horasSemanales>5</horasSemanales>
<ciclo>ASIR</ciclo>
</modulo>
</modulos>
</ies>
XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Ciclos</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Ciclo</th>
</tr>
<xsl:for-each select="ies/modulos/modulo[nombre = 'Lenguajes de marcas y sistemas de gestión de información']">
<xsl:for-each select="ciclo">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
结果
<html>
<body>
<h2>Ciclos</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Ciclo</th>
</tr>
<tr>
<td>ASIR</td>
</tr>
<tr>
<td>DAW</td>
</tr>
</table>
</body>
</html>
改变这个:
<xsl:for-each select="ciclo">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
进入:
<xsl:for-each select="ciclo">
<tr>
<td><xsl:value-of select="/ies/ciclos/ciclo[@id=current()]/nombre"/></td>
</tr>
</xsl:for-each>
请注意:current()
函数用于在其他 XPath 上下文中引用当前 XSLT 节点上下文。您也可以使用 xsl:key
指令和 key()
函数。
您可以使用 xsl:key
来获取 ciclos
的 nombre
。
在顶层添加这个键
<xsl:key name="keyCiclos" match="ciclos/ciclo" use="@id" />
然后将内部 for 循环更改为
<tr>
<td><xsl:value-of select="key('keyCiclos',.)/nombre"/></td>
</tr>
我需要获取包含在模块“Lenguajes de marcas y sistemas de gestión de información”中的课程名称。
我尝试这样做,但我不知道如何link彼此。
结果应该是:
Administración de Sistemas Informáticos en Red
Desarrollo de Aplicaciones Web
我已经开发了这个,谢谢你的帮助。
XML:
<?xml version="1.0" encoding="UTF-8"?>
<ies>
<nombre>IES Abastos</nombre>
<web>http://www.iesabastos.org</web>
<ciclos>
<ciclo id="ASIR">
<nombre>Administración de Sistemas Informáticos en Red</nombre>
<grado>Superior</grado>
<decretoTitulo año="2009" />
</ciclo>
<ciclo id="DAW">
<nombre>Desarrollo de Aplicaciones Web</nombre>
<grado>Superior</grado>
<decretoTitulo año="2010" />
</ciclo>
<ciclo id="SMR">
<nombre>Sistemas Microinformáticos y Redes</nombre>
<grado>Medio</grado>
<decretoTitulo año="2008" />
</ciclo>
</ciclos>
<modulos>
<modulo id="0228">
<nombre>Aplicaciones web</nombre>
<curso>2</curso>
<horasSemanales>4</horasSemanales>
<ciclo>SMR</ciclo>
</modulo>
<modulo id="0372">
<nombre>Gestión de bases de datos</nombre>
<curso>1</curso>
<horasSemanales>5</horasSemanales>
<ciclo>ASIR</ciclo>
</modulo>
<modulo id="0373">
<nombre>Lenguajes de marcas y sistemas de gestión de información</nombre>
<curso>1</curso>
<horasSemanales>3</horasSemanales>
<ciclo>ASIR</ciclo>
<ciclo>DAW</ciclo>
</modulo>
<modulo id="0376">
<nombre>Implantación de aplicaciones web</nombre>
<curso>2</curso>
<horasSemanales>5</horasSemanales>
<ciclo>ASIR</ciclo>
</modulo>
</modulos>
</ies>
XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Ciclos</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Ciclo</th>
</tr>
<xsl:for-each select="ies/modulos/modulo[nombre = 'Lenguajes de marcas y sistemas de gestión de información']">
<xsl:for-each select="ciclo">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
结果
<html>
<body>
<h2>Ciclos</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Ciclo</th>
</tr>
<tr>
<td>ASIR</td>
</tr>
<tr>
<td>DAW</td>
</tr>
</table>
</body>
</html>
改变这个:
<xsl:for-each select="ciclo">
<tr>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
进入:
<xsl:for-each select="ciclo">
<tr>
<td><xsl:value-of select="/ies/ciclos/ciclo[@id=current()]/nombre"/></td>
</tr>
</xsl:for-each>
请注意:current()
函数用于在其他 XPath 上下文中引用当前 XSLT 节点上下文。您也可以使用 xsl:key
指令和 key()
函数。
您可以使用 xsl:key
来获取 ciclos
的 nombre
。
在顶层添加这个键
<xsl:key name="keyCiclos" match="ciclos/ciclo" use="@id" />
然后将内部 for 循环更改为
<tr>
<td><xsl:value-of select="key('keyCiclos',.)/nombre"/></td>
</tr>