【问题标题】:XLST select by value of attributeXSLT 按属性值选择
【发布时间】:2014-02-25 17:23:20
【问题描述】:

XML 结构如下。如果地址类型 =“C”,我需要将文本分配给变量 currentAddress_Street1。

<Addresses>
    <Address Type="P">
      <Street1>220 State Street</Street1>
      <Street2 />
      <City>HATTIESBURG</City>
      <State>MS</State>
      <ZipCode>12354</ZipCode>
      <Country />
     </Address>

    <Address Type="C">
      <Street1>1000 </Street1>
      <Street2 />
      <City>Jackson</City>
      <State>MS</State>
      <ZipCode>12354</ZipCode>
      <Country />
     </Address>

以下是我的尝试。对 XLST 非常陌生。有人可以帮忙修改吗?

  <xsl:variable name="currentAddress_Street1">
<xsl:value-of select="//Addresses/Address/Street1[Address/@Type='C']" />
  </xsl:variable>

【问题讨论】:

    标签: xml xslt


    【解决方案1】:

    另一种方法是将谓词放在Address 上,就像这样

    //Addresses/Address[@Type='C']/Street1
    

    如您所见,它更简洁,更容易识别您要执行的操作。

    【讨论】:

      【解决方案2】:

      您正在测试父节点的属性,因此您必须在谓词中指定它,因为它在Street1 的上下文中运行。

      //Addresses/Address/Street1[parent::Address/@Type='C']
      

      【讨论】:

      • 感谢您的快速帮助。
      猜你喜欢
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多