【发布时间】:2009-02-13 19:52:15
【问题描述】:
我发布了一个类似的问题,并得到了非常有用的回复。 现在问题有点不同,所以我发布它。 我指定它是一个与 XPath 1 相关的问题。 这是我的 XML 文件的内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<mainNode>
<subNode>
<h hm="08:45">
<store id="1563">Open</store>
</h>
<h hm="13:00">
<store id="1045">Open</store>
<store id="763">Open</store>
<store id="1047">Open</store>
</h>
<h hm="16:30">
<store id="1045">Open</store>
<store id="763">Open</store>
<store id="1047">Open</store>
</h>
<h hm="20:00">
<store id="1045">Open</store>
<store id="1043">Open</store>
<store id="1052">Open</store>
</h>
<h hm="22:00">
<store id="763">Open</store>
<store id="1052">Open</store>
</h>
</subNode>
</mainNode>
我的程序获取当前时间:如果我得到12.40,我必须检索下一个h hm(13.00)的所有stores id:这个问题已经解决了。
检索数据后,通过第二个 XPath 查询,我必须得到直到在当天(XML 文件是其代表),单个商店将打开。 因此,假设商店是标识为 id=1045 的商店,现在是早上 12.40。该商店将在 20.00 关闭,因为它位于 h hm=13.00 子节点、h hm=16.30 子节点和 h hm=20.00 子节点中。所以,我必须得到那个 20.00。
案例 2:现在是 12.40,我必须知道 763 什么时候关闭。它将在 16.30 关闭,无论它是否包含在最后一个节点中 (h hm=22.00)。所以,我必须得到那个 16.30。
这可能吗?
提前致谢。
【问题讨论】:
-
亲爱的,我做了一些连续的编辑。现在解决方案是正确的,可以查看了。玩得开心:)
-
@vyger 是的,你是对的,我在我的回答中修复了最后一个缺失的部分。谢谢
-
@vyger 我的答案中的 XPath 表达式是您的第二个问题的解决方案(它也解决了第一个问题,这不是缺点:))
-
@Dimitre:对不起,我想要删除我的 cmets... :-) 对不起,我真的很累...无论如何:今天我知道他们想要改变很多我正在处理的应用程序。所以,可能也不再需要 XPath。
-
@Dimitre 和这里的每个人:我对每个答案都投了 +1,只是因为我不会使用任何答案。我同样感谢这里的所有开发人员抽出时间来帮助我。
标签: xpath