无法获得' xml:lang'的价值属性

时间:2016-08-25 15:51:19

标签: xslt

<xoe:documents xmlns:xoe="http://xxxxxx" count="1">

  <xocs:doc xmlns:xocs="xxxxxx" xmlns:xsi="yyyyyyy" xsi:schemaLocation="zzzzzz">

    <xocs:meta>...</xocs:meta>

    <xocs:serial-item>
      <!-- this line -->
      <article xmlns:sa="www.google.hgy" xmlns="http://www.xyzq1.org/xml/ja/dtd" version="5.4" xml:lang="pl" docsubtype="rev">
        <article-info>
        </article-info>
      </article>

    </xocs:serial-item>

  </xocs:doc>

</xoe:documents>

我无法获得&#39; xml:lang&#39;的价值属性。甚至以为我尝试使用下面的xpath

<xsl:variable name="rootPath" select="/xoe:documents/xocs:doc/xocs:serial-item"/>
<xsl:variable name="lang" select="$rootPath/ja:article[@xml:lang]"/>
or 
<xsl:variable name="lang" select="$rootPath/ja:article/@xml:lang"/>

这里ja已经在我的xslt代码中定义了

xmlns:ja="http://www.xyzq1.org/xml/ja/dtd"

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

首先,您需要声明这些:

xmlns:xoe="http://xxxxxx"
xmlns:xocs="xxxxxx"
xmlns:ya="www.yahoo.mkt"

然后,您可以使用以下内容获取xml:lang属性的值:

<xsl:value-of select="/xoe:documents/xocs:doc/xocs:serial-item/ya:article/@xml:lang"/>

请注意,样式表名称空间声明中的URI必须与源XML中显示的URI相同。前缀可以是你喜欢的任何东西。