XSL涉及具有COLON的XML元素

时间:2014-05-30 11:57:27

标签: xml xslt colon

我正在针对第三方XML文件运行XSLT,该文件的元素名称包含冒号。

<xccdf:TestResult xmlns:xccdf="http://checklists.nist.gov/xccdf/1.2"
  <xccdf:benchmark href="ine" id="abs"/><xccdf:title xml:lang="en-US">TestConten</xccdf:title>
....
....

现在在我的XSL文件中,当我尝试提取属性的值或元素下的数据时

<xsl:value-of select="xccdf:TestResult/xccdf:benchmark/@id"/>
<xsl:value-of select="xccdf:TestResult/xccdf:title"/>

我没有价值。我得到空数据。

在XSLT中,我也声明了名称空间。

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xccdf="http://checklists.nist.gov/xccdf/1.2">

我不确定如何提取元素或属性的值!! 任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

在链接的样式表中,将名称空间声明为xmlns:xccdfSchema =“http://checklists.nist.gov/xccdf/1.1”,因此样式表中的XPath表达式实际上应该以xccdfSchema而不是xccdf为前缀。 - helderdarocha 5月30日13:22

@helderdarocha提出的建议有效。

我需要做的就是设置命名空间并在XPath表达式中使用xccdfSchema:ElementName