Настройка
У меня есть XML-файл с (это упрощено от фактического):
<feeds xmlns...>
<feed>
<week>
<start-date>...</start-date>
<end-date>...</end-date>
<entry>
<data name="foo" value="bar"/>
<data name="path" value="/news/releases/2011-12-05/xyzzy"/>
<numeric name="bar" value="463284">
</entry>
<entry>
<data name="foo" value="baz"/>
<data name="path" value="/pages/ISOcodes/en-US"/>
<numeric name="bar" value="4332">
</entry>
<entry>
<data name="foo" value="bar"/>
<data name="path" value="/"/>
<numeric name="bar" value="23232">
</entry>
</week>
...
</feed>
...
</feeds>
Каждый week
имеет много entry
с; каждый entry
имеет только два data
элемента, один с name="foo"
, а другой с name="path"
и один numeric
элемент с name="bar"
и value
целым числом. Может быть частично-дубликат entry
с, даже в пределах week
: entry
с может иметь одинаковые foo
или одинаковые path
, но не может быть двух entry
с в течение недели, имеющих одинаковые foo
и одинаковые path
.
Что я хочу
Я бы хотел разделить мои path
на категории. Например, я хочу, чтобы все path
, соответствующие регулярному выражению /ISOcodes/
, рассматривались отдельно (скажем, как "коды ISO"), а все paths
, соответствующие ^/news
, как отдельная категория ("новости").
Я пытаюсь суммировать value
из bar
по нескольким entry
с в пределах одного week
, группируя по foo
и типу (как в предыдущем абзаце) path
. То есть для каждого week
, для каждого value
из foo
, для каждой категории path
(как в предыдущем абзаце) я хочу sum()
из value
s bar
.
Есть ли способ сделать это? Как?