我正在尝试使用XSLT在HTML表格中打印此XML文件,我不知道如何从XMI和UML标记中获取信息,例如XMI.header
或XMI.exporter
我知道如何从根标签XMI获取属性,而不知道。
下的其他标签XML文档
<XMI xmi.version="1.2"
xmlns:UML="org.omg.xmi.namespace.UML"
timestamp="Wed Apr 21 18:15:34 CEST 2010">
<XMI.header>
<XMI.documentation>
<XMI.exporter>
ArgoUML (using Netbeans XMI Writer version 1.0)
</XMI.exporter>
<XMI.exporterVersion>0.30(6) revised on $Date: 2010-01-11 22:20:14 +0100 (Mon, 11 Jan 2010) $
</XMI.exporterVersion>
</XMI.documentation>
<XMI.metamodel xmi.name="UML" xmi.version="1.4"/>
</XMI.header>
<XMI.content>
<UML:Multiplicity xmi.id="-64--88-0--57--53f31703:128211b208a:-8000:0000000000000DDF">
<UML:Multiplicity.range>
<UML:MultiplicityRange xmi.id="-64--88-0--57--53f31703:128211b208a:-8000:0000000000000DE0"
lower="1" upper="1"/>
</UML:Multiplicity.range>
</XMI.content>
</XMI>
</UML:Multiplicity>
XSLT代码
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="XMI">
XMI Version: <xsl:value-of select="./@xmi.version"/>
<br/>
Generated: <xsl:value-of select="./@timestamp"/>
<br/>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
XMI.header
和XMI.exporter
只是普通的XML标记名称。在ASCII范围内,初始字符必须是字母数字或下划线,但在此之后,名称可以包括句号和连字符。所以只是
<xsl:template match="XMI.header">
会为你效劳。
UML
名称略有不同,因为UML
是名称空间,必须在XSLT样式表的顶部声明。所以你需要
<xsl:stylesheet version="1.0"
xmlns:UML="org.omg.xmi.namespace.UML"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
之后你可以直接使用名称,比如
<xsl:template match="UML:Multiplicity">