XSL匹配具有特定值的id并获取子文本

时间:2015-03-09 18:44:07

标签: xml

我有一个使用一些特定于命名空间的属性的SVG。我需要获取具有特定值的ID的值,以便我可以将其用作参数。

以下是我需要获取的信息的SVG片段:

<g id="_166" fill="black" stroke="black" stroke-width="0.0005" ntc:id="TITLE">
<g stroke="none" font-family="Arial">
  <text font-size="1.365" x="3.85222972" y="-0.04367862">Figure 2-33 TITLE OF FIGURE (Sheet 1 of 3) Change 15</text>
</g>

当我做类似的事情时:

<xsl:variable name="getTitle" select="//@ntc:id = 'TITLE'"/>

它只返回true。我需要在svg:text descendant中获取文本。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用

之类的表达式
//*[@ntc:id = 'TITLE']//svg:text

(假设svg前缀绑定到样式表中的相应名称空间)。这将为您提供text为TITLE的元素中包含的ntc:id元素集。

如果您关心的只是文本内容而不是svg:text元素本身,那么它可能就足够了

<xsl:value-of select="//*[@ntc:id = 'TITLE']"/>

由于元素的字符串值(在本例中为g)被定义为其所有后代文本节点的串联。