我正在针对第三方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">
我不确定如何提取元素或属性的值!! 任何指针都会受到赞赏。
答案 0 :(得分:1)
在链接的样式表中,将名称空间声明为xmlns:xccdfSchema =“http://checklists.nist.gov/xccdf/1.1”,因此样式表中的XPath表达式实际上应该以xccdfSchema而不是xccdf为前缀。 - helderdarocha 5月30日13:22
@helderdarocha提出的建议有效。
我需要做的就是设置命名空间并在XPath表达式中使用xccdfSchema:ElementName