1

目前我有以下 XML:

<Rowsets>
    <Rowset>
        <Row>
            <DrilldownDepth>0</DrilldownDepth>
            <ScheduleWeek>---</ScheduleWeek>
            <ABC>---</ABC>
            <PQR>1500</PQR>
            <XYZ>15000</XYZ>
            <Quant>285</Quant>
        </Row>
        <Row>
            <DrilldownDepth>1</DrilldownDepth>
            <ScheduleWeek>12</ScheduleWeek>
            <ABC>---</ABC>
            <PQR>1500</PQR>
            <XYZ>15000</XYZ>
            <Quant>285</Quant>
        </Row>
        <Row>
            <DrilldownDepth>2</DrilldownDepth>
            <ScheduleWeek>12</ScheduleWeek>
            <ABC>SUPER</ABC>
            <PQR>100</PQR>
            <XYZ>200</XYZ>
            <Quant>300</Quant>
        </Row>
        <Row>
            <DrilldownDepth>2</DrilldownDepth>
            <ScheduleWeek>12</ScheduleWeek>
            <ABC>Duper</ABC>
            <PQR>100</PQR>
            <XYZ>200</XYZ>
            <Quant>300</Quant>
        </Row>
        <Row>
            <DrilldownDepth>2</DrilldownDepth>
            <ScheduleWeek>12</ScheduleWeek>
            <ABC>Fun</ABC>
            <PQR>100</PQR>
            <XYZ>200</XYZ>
            <Quant>300</Quant>
        </Row>
        <Row>
            <DrilldownDepth>2</DrilldownDepth>
            <ScheduleWeek>7</ScheduleWeek>
            <ABC>SUPER</ABC>
            <PQR>100</PQR>
            <XYZ>200</XYZ>
            <Quant>300</Quant>
        </Row>
        <Row>
            <DrilldownDepth>2</DrilldownDepth>
            <ScheduleWeek>7</ScheduleWeek>
            <ABC>Duper</ABC>
            <PQR>100</PQR>
            <XYZ>200</XYZ>
            <Quant>300</Quant>
        </Row>
        <Row>
            <DrilldownDepth>2</DrilldownDepth>
            <ScheduleWeek>8</ScheduleWeek>
            <ABC>SUPER</ABC>
            <PQR>100</PQR>
            <XYZ>200</XYZ>
            <Quant>300</Quant>
        </Row>
    </Rowset>
</Rowsets>

现在我只需要那些<Row>where<DrilldownDepth>2</DrilldownDepth><ScheduleWeek>12</ScheduleWeek>. 我可以使用中继器/循环来实现它,但我需要使用 Xpath 或 XSLT 来实现它。因此,我们将不胜感激对此事的任何帮助。

索茨

4

2 回答 2

0

以下 XPath 语句使用谓词过滤器来选择包含满足指定条件的子元素的 Row 元素:

/Rowsets/Rowset/Row[DrilldownDepth=2 and ScheduleWeek=12]

为 XSLT 中应用的值使用变量:

<xsl:variable name="depth">2</xsl:variable>
<xsl:variable name="week">12</xsl:variable>
<xsl:apply-templates select="/Rowsets/Rowset/Row[DrilldownDepth=$depth and ScheduleWeek=$week]"/>
于 2012-06-26T01:24:28.150 回答
0

'and' 运算符的替代方法是使用第二个谓词。哪个更好取决于个人风格,但是如果您查看很多关于 SO 的答案,您会发现多谓词方法是流行的选择。

看起来像这样...

 /Rowsets/Rowset/Row[DrilldownDepth='2'][ScheduleWeek='12']

注意:在文字数字周围有或没有引号时,这同样适用。没有可能更具可读性。使用可能会更有效。这又是一种风格选择。

于 2012-06-26T03:36:36.633 回答