以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  关于一个选择输出的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=92782)


--  作者:liangqian05
--  发布时间:7/18/2011 10:58:00 AM

--  关于一个选择输出的问题

源文件是这样的 <PointRecord ID="00000058" TimeStamp="2011-06-30T15:16:45">
            <Name>SP02</Name>
            <Code>管线 节点</Code>
            <Method>GpsStaticObservation</Method>
            <SurveyMethod>Fix</SurveyMethod>
            <Classification>Normal</Classification>
            <Deleted>false</Deleted>
            <Features>
                <Feature Name="节点">
                    <Attribute>
                        <Name>埋深</Name>
                        <Value>0.69</Value>
                        <Type>Numeric</Type>
                    </Attribute>
                    <Attribute>
                        <Name>口径</Name>
                        <Value>200</Value>
                        <Type>Menu</Type>
                        <ItemIndex>10</ItemIndex>
                    </Attribute>
                </Feature>
我想这样输出,如果属性的名字是“埋深”,那么值是0.69,如果属性的名字是“口径”,那么值为200。如果没有“埋深”这个属性,那么输出“,”后再输出口径的值
代码如下: <xsl:for-each select="Features/Feature/Attribute">
          <xsl:value-of select="Value"/>
        <xsl:text>,</xsl:text>
      </xsl:for-each>
该如何加入判断呢,我试了一些都不成功。。。
--  作者:Qr
--  发布时间:7/25/2011 7:10:00 PM

--  
次序很重要,我只针对你这个特定的XML。
<xsl:if test="preceding-sibling::Attribute/Name!='埋深'><xsl:text>,</xsl:text></xsl:if>

preceding-sibling::      上下文节点之前的兄弟节点
following-sibling::        上下文节点之后的兄弟节点


--  作者:liangqian05
--  发布时间:9/1/2011 3:19:00 PM

--  
3Q,我用的<xsl:for-each select="Features/Feature/Attribute/Name[text()='埋深']">这样判断了
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
8,890.625ms