选择out of context元素,其中descendant元素的值等于context的属性值

时间:2011-08-31 14:47:40

标签: xml xslt xpath

我希望能够选择Parent_Entity_Ref等于Entity的id的所有Relationship元素。

我目前的尝试如下:

<xsl:apply-templates select="//EMX:Relationship[EMX:RelationshipProps/EMX:Parent_Entity_Ref = @id]" />

XML结构如下:

<ERwin>
  <EMX:Model>
    <Entity_Groups>
      <Entity id="blah">
        <!--Current Context-->
      </Entity>
    </Entity_Groups>
    <Relationship_Groups>
      <Relationship>
        <RelationshipProps>
          <!--Contains entity id -->
          <Parent_Entity_Ref>blah</Parent_Entity_Ref>
        </RelationshipProps>
      </Relationship>
    </Relationship_Groups>
  </EMX:Model>
</ERwin>

我认为正在发生的是它正在寻找实体中的所有关系元素而不是整个文档,我尝试添加祖先轴并且没有帮助

1 个答案:

答案 0 :(得分:1)

//Relationship[
    RelationshipProps/Parent_Entity_Ref = ../../Entity_Groups/Entity/@id
]

XML:

<ERwin xmlns:EMX="namespace">
  <EMX:Model>
    <Entity_Groups>
      <Entity id="blah">
        <!--Current Context-->
      </Entity>
    </Entity_Groups>
    <Relationship_Groups>
      <Relationship>
        <RelationshipProps>
          <!--Contains entity id -->
          <Parent_Entity_Ref>blah</Parent_Entity_Ref>
        </RelationshipProps>
      </Relationship>
    </Relationship_Groups>
  </EMX:Model>
</ERwin>