2014-06-20 32 views
0

XML代码:如何将XML数组中的一个特定元素放入FO对象?

<EUseSummary> 
    <Name>EUSummary</Name> 
    <Title1 index="1">Proposed</Title1> 
    <Title1 index="2">Proposed</Title1> 
    <Title1 index="3">Proposed</Title1> 
    <Title1 index="4">Standard</Title1> 
    <Title1 index="5">Standard</Title1> 
    <Title1 index="6">Standard</Title1> 
    <Title1 index="7">Compliance</Title1> 
    <Title1 index="8">CAHP</Title1> 
    <Title2 index="1">Design</Title2> 
    <Title2 index="2">Design</Title2> 
    <Title2 index="3">Design</Title2> 
    <Title2 index="4">Design</Title2> 
    <Title2 index="5">Design</Title2> 
    <Title2 index="6">Design</Title2> 
    <Title2 index="7">Margin</Title2> 
    <Title2 index="8">Design</Title2> 
    <Title3 index="0">End Use</Title3> 
    <Title3 index="1">Site (kWh)</Title3> 
    <Title3 index="2">Site (therms)</Title3> 
    <Title3 index="3">(kTDV/ft²-yr)</Title3> 
    <Title3 index="4">Site (kWh)</Title3> 
    <Title3 index="5">Site (therms)</Title3> 
    <Title3 index="6">(kTDV/ft²-yr)</Title3> 
    <Title3 index="7">(kTDV/ft²-yr)</Title3> 
    <Title3 index="8">(kTDV/ft²-yr)</Title3> 
    <Enduse1 index="0">Space Heating</Enduse1> 
    <Enduse1 index="1">246</Enduse1> 
    <Enduse1 index="2">286.5</Enduse1> 
    <Enduse1 index="3">21.04</Enduse1> 
    <Enduse1 index="4">255</Enduse1> 
    <Enduse1 index="5">296.8</Enduse1> 
    <Enduse1 index="6">21.80</Enduse1> 
    <Enduse1 index="7">0.76</Enduse1> 
    <Enduse1 index="8">23.18</Enduse1> 
    </EUseSummary> 

我的XSL代码一小片粘贴下面。这是在表格中定义一个单元格。我最终想要获取位置index = 8处的所有Enduse值,并放置在表格的其余单元格中。现在,我只是需要一些澄清,如何从XML的对象选择一个特定的值:

<fo:table-row xsl:use-attribute-sets="Row"> 
     <fo:table-cell xsl:use-attribute-sets="dataCell"> 
     <fo:block> 
     <xsl:value-of select="/SDDXML/Model/Proj/EUseSummary/Enduse1/*[@index=8]"/>                                              
     </fo:block> 
</fo:table-cell> 

我很期待回归是一个单元格的值(更大的表,我的天堂”之内牛逼提供了一种用于代码):23.18

感谢,

+0

抢XSL一本好书,读它。在Enduse1上做一个模板匹配[@ index ='8'] ... –

回答

1

您当前的XPath在此结束...

Enduse1/*[@index=8] 

/*意味着它正在寻找子元素Enduse1其中没有!只有一个文本节点,而不是一个元素。

试试这个:

<xsl:value-of select="/SDDXML/Model/Proj/EUseSummary/Enduse1[@index=8]"/> 
相关问题