【发布时间】:2015-04-17 21:55:08
【问题描述】:
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <OrderFeed>
- <Order id="1">
- <BillingInformation>
<Name>Bruce Ganek</Name>
<Address>99 Main Street</Address>
<City>Cranston</City>
<State>RI</State>
<ZipCode>02910</ZipCode>
</BillingInformation>
- <ShippingInformation>
<Name>Governor Chafee</Name>
<Address>82 Smith St # 115</Address>
<City>Providence</City>
<State>RI</State>
<ZipCode>02903-1121</ZipCode>
</ShippingInformation>
- <Items>
- <Item>
<PartNo>JETSWEATER</PartNo>
<Description>N.Y. Jets Sweatshirt</Description>
<UnitPrice>10.50</UnitPrice>
<Quantity>2</Quantity>
<TotalCost>21.00</TotalCost>
- <CustomerOptions>
<Size>M</Size>
<Color>Green</Color>
</CustomerOptions>
</Item>
- <Item>
<PartNo>JETSWEATER</PartNo>
<Description>N.Y. Jets Sweatshirt</Description>
<UnitPrice>7.50</UnitPrice>
<Quantity>3</Quantity>
<TotalCost>22.50</TotalCost>
- <CustomerOptions>
<Size>S</Size>
<Color>White</Color>
</CustomerOptions>
</Item>
- <Item>
<PartNo>JETSFLASHLIGHT</PartNo>
<Description>N.Y. Jets Flashlight</Description>
<UnitPrice>5.00</UnitPrice>
<Quantity>1</Quantity>
<TotalCost>5.00</TotalCost>
<CustomerOptions />
</Item>
</Items>
</Order>
- <Order id="2">
- <BillingInformation>
<Name>Walt Disney</Name>
<Address>DisneyWorld Hotel</Address>
<City>Orlando</City>
<State>FL</State>
<ZipCode>32801</ZipCode>
</BillingInformation>
- <ShippingInformation>
<Name>Walt Disney</Name>
<Address>DisneyWorld Hotel</Address>
<City>Orlando</City>
<State>FL</State>
<ZipCode>32801</ZipCode>
</ShippingInformation>
- <Items>
- <Item>
<PartNo>JETSWEATER</PartNo>
<Description>N.Y. Jets Sweatshirt</Description>
<UnitPrice>10.50</UnitPrice>
<Quantity>2</Quantity>
<TotalCost>21.00</TotalCost>
- <CustomerOptions>
<Size>M</Size>
<Color>Green</Color>
</CustomerOptions>
</Item>
- <Item>
<PartNo>JETSWEATER</PartNo>
<Description>N.Y. Jets Sweatshirt</Description>
<UnitPrice>7.50</UnitPrice>
<Quantity>3</Quantity>
<TotalCost>22.50</TotalCost>
- <CustomerOptions>
<Size>S</Size>
<Color>White</Color>
</CustomerOptions>
</Item>
- <Item>
<PartNo>JETSFLAG</PartNo>
<Description>N.Y. Jets Flag for display</Description>
<UnitPrice>5.00</UnitPrice>
<Quantity>1</Quantity>
<TotalCost>5.00</TotalCost>
<CustomerOptions />
</Item>
</Items>
</Order>
- <Order id="3">
- <BillingInformation>
<Name>Tom Brady</Name>
<Address>One Patriot Place</Address>
<City>Foxboro</City>
<State>MA</State>
<ZipCode>02035</ZipCode>
</BillingInformation>
- <ShippingInformation>
<Name>Tom Brady</Name>
<Address>2121 George Halas Drive</Address>
<City>Canton</City>
<State>OH</State>
<ZipCode>44708</ZipCode>
</ShippingInformation>
- <Items>
- <Item>
<PartNo>JETPANTS</PartNo>
<Description>N.Y. Jets Sweatpants</Description>
<UnitPrice>10.50</UnitPrice>
<Quantity>3</Quantity>
<TotalCost>31.50</TotalCost>
- <CustomerOptions>
<Size>M</Size>
<Color>Green</Color>
</CustomerOptions>
</Item>
- <Item>
<PartNo>JETSWEATER</PartNo>
<Description>N.Y. Jets Sweatshirt</Description>
<UnitPrice>7.50</UnitPrice>
<Quantity>1</Quantity>
<TotalCost>7.50</TotalCost>
- <CustomerOptions>
<Size>S</Size>
<Color>White</Color>
</CustomerOptions>
</Item>
- <Item>
<PartNo>JETSFLAG</PartNo>
<Description>N.Y. Jets Flag for display</Description>
<UnitPrice>5.00</UnitPrice>
<Quantity>1</Quantity>
<TotalCost>5.00</TotalCost>
<CustomerOptions />
</Item>
</Items>
</Order>
</OrderFeed>
上面是我正在解析的xml文档。我的目标是用于输入 PartNo,例如“JETSFLAG”是他们传递给应用程序的字符串。我想找到整个 OrderFeed 中的所有订单,并计算 PartNo 特别被购买的次数。我有一个 XPath Navigator 工具,由于某种原因,当我编写应该可以得到我想要的东西的表达式时,它没有返回任何东西。
这是我在评估表达式时得到的结果://OrderFeed/Order/Items//Item//PartNo,它得到了我需要的数据,我需要的只是用户输入的任何特定项目的计数......
<xml>JETSWEATER JETSWEATER JETSFLASHLIGHT JETSWEATER JETSWEATER JETSFLAG JETPANTS JETSWEATER JETSFLAG</xml>
现在,我很确定写 count(//OrderFeed/Order/Items//Item//PartNo[JETSFLAG]) 应该会计算 2 个项目。但这就是我得到的回报……
<xml>0</xml>
显示时,计数返回 0。有人可以帮忙吗?
【问题讨论】: