2017-03-10 118 views
-1

这里是XML:为什么这个xpath返回一个空的节点集?

<recordTarget> 
     <patientRole> 
      <patient> 
      <religiousAffiliationCode code="1013" displayName="Christian (non-Catholic, non-specific)" codeSystem="2.16.840.1.113883.5.1076" codeSystemName="HL7 Religious Affiliation"/> 
    </patient> 
</patientRole> 
</recordTarget> 

这里是我的XPath语句(n1为命名空间)

<xsl:variable name="religion" select="n1:recordTarget/n1:patientRole/n1:patient/n1:religiousAffilliationCode/@displayName"/> 

回答

0

对你的XML评估您的XPath的结果取决于你一直因素没有告诉我们。

它取决于

  • 当前上下文,因为它是一个相对的 的XPath。
  • 命名空间前缀 的定义在XML中以及承载 XPath的语言中一致定义。请参阅How does XPath deal with XML namespaces?
  • 命名空间为recordTarget,patientRole, 等,如果没有看到它们的完整遗产就无法确定。
+0

我只包含少量XML,但当前上下文正确,名称空间n1已定义。迈克尔凯有一个敏锐的目光。这是拼写错误。 –

0

检查religiousAffiliationCode的拼写。 (顺便说一句,对路径表达式中拼写错误的唯一真正防御是在XSLT 2.0中使用模式感知功能,如果您正确利用它们,则可以在编译时检查路径是否有意义在使用类似HL7这样的名称往往很长且曲折的词汇时尤其相关)

+0

你有一个尖锐的眼睛我的朋友。谢谢! –

相关问题