【问题标题】:how to use xml to match a child element's attribute and calls the parent attribute?如何使用xml匹配子元素的属性并调用父属性?
【发布时间】:2015-02-03 06:06:07
【问题描述】:

xml

<school>
<courses>
<course credits="3" courseNum="COMP2899" name="XML for Developers" url="http://www.bcit.ca/study/outlines/comp2899">
  <prereqs>
    <prereq courseNum="COMP1850"/>
  </prereqs>
</course>
<course credits="3" courseNum="COMP1850" name="Introduction to Web Development and Design" url="http://www.bcit.ca/study/outlines/comp1850">
  <prereqs>
    <prereq courseNum="COMP1002"/>
  </prereqs>
</course>
</courses>
</school>

xsl

    <xsl:for-each select="./school/courses/course">
      <xsl:sort select="./@courseNum" order="ascending" data-type="text"/>
      <xsl:if test="./prereqs/prereq/@courseNum = COMP1850">
          <tr>
            <td><xsl:value-of select="@courseNum"/></td>
            <td><a target="_blank" href="{key('courseKey', @courseNum)/@url}">
                <xsl:value-of select="./@name"/></a></td>
          </tr>
      </xsl:if>
    </xsl:for-each>

如果课程的prereqs courseNumCOMP1850,我想调出courseNum, url and name,但不知何故我一直在尝试一些事情,要么它没有做任何事情,要么所有页面都变成空白。

所以基本上如果我的 prereq 元素的 courseNum attr 是 COMP1850 那么我想调用 course 元素的 attr 值。

有人可以帮帮我吗?谢谢

【问题讨论】:

    标签: xml xslt if-statement foreach


    【解决方案1】:

    您错过了将文字值 COMP1850 放在单引号中..

    &lt;xsl:if test="./prereqs/prereq/@courseNum = 'COMP1850'"&gt;

    【讨论】:

    • 天哪,谢谢!我讨厌自己这样做!天哪!
    猜你喜欢
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-24
    相关资源
    最近更新 更多