【问题标题】:xml xsl node selection based on attribute value基于属性值的xml xsl节点选择
【发布时间】:2017-11-13 04:32:22
【问题描述】:

我想根据属性值选择一个兄弟节点。 xml的相关部分看起来像,

<wd:Job_Classifications>
    <wd:Job_Classification_ID>20</wd:Job_Classification_ID>
    <wd:Job_Classification_Group wd:Descriptor="SUS Occupational Categories">              
        <wd:ID wd:type="Job_Classification_Group_ID">SUS_OCC_CATEGORIES</wd:ID>        
    </wd:Job_Classification_Group>    
</wd:Job_Classifications>

<wd:Job_Classifications>   
    <wd:Job_Classification_ID>9009</wd:Job_Classification_ID>        
    <wd:Job_Classification_Group wd:Descriptor="SUS Classification Code">                
        <wd:ID wd:type="Job_Classification_Group_ID">SUS_CLASS_CODE</wd:ID>        
    </wd:Job_Classification_Group>    
</wd:Job_Classifications>

<wd:Job_Classifications>    
    <wd:Job_Classification_ID>99</wd:Job_Classification_ID>
    <wd:Job_Classification_Group wd:Descriptor="Administrative Code">                
        <wd:ID wd:type="Job_Classification_Group_ID">ADMIN_CODE</wd:ID>        
    </wd:Job_Classification_Group>    
</wd:Job_Classifications>

而我正在尝试的 xsl 就像

<xsl:value-of select="../wd:Job_Classifications
                      [@wd:Descriptor
                      ='SUS Classification Code']
                      /wd:Job_Classification_ID" />

这没有给我任何结果。我在两级 for 循环中,必须使用 ../ 才能到达直接父级。 当我使用以下内容时,

<xsl:value-of select="../wd:Job_Classifications
                      /wd:Job_Classification_ID" />

我得到了所有的 ID,但我需要根据 wd:Job_Classification_Group 描述符值进行选择。

【问题讨论】:

  • 您应该添加更多的 XSLT,并在输入中提供有效的 XML。谢谢。

标签: xml xslt


【解决方案1】:

您将谓词 [@wd:Descriptor ='SUS Classification Code'] 应用于名为 wd:Job_Classifications 的元素,但 XML 中唯一的 wd:Job_Classifications 元素没有该名称或任何其他名称的属性。

也许你的意思是../wd:Job_Classifications [wd:Job_Classification_Group /@wd:Descriptor='SUS Classification Code'] /wd:Job_Classification_ID

【讨论】:

  • 谢谢 C.M.斯珀伯格-麦昆。我更正了您指定的方式,现在它正在返回 ID。我不知道如何写那个谓词。我正在尝试类似“”的东西由于 ID 未嵌套在组内,因此无法追溯到 ID。非常感谢您的帮助,因为我在发布之前尝试了 2 天来解决此问题。
猜你喜欢
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多