Вот пример XML-файл, который я пытаюсь вытащить данные из:выражение XPath для возврата значения на основе значения собрата
<rss>
<channel>
<item>
<title>First Title</title>
<description>description text</description>
<component>Distribution - Maintain</component>
<timeoriginalestimate seconds="3600">1 hour</timeoriginalestimate>
<timespent seconds="1860">31 minutes</timespent>
</item>
<item>
<title>Second Title</title>
<description>description text</description>
<component>Reporting - Security</component>
<timeoriginalestimate seconds="3600">1 hour</timeoriginalestimate>
<timespent seconds="1860">31 minutes</timespent>
</item>
<item>
<title>third Title</title>
<description>description text</description>
<timeoriginalestimate seconds="5400">1 hour, 30 Minutes</timeoriginalestimate>
<timespent seconds="2700">45 minutes</timespent>
</item>
<item>
<title>Fourth Title</title>
<description>description text</description>
<component>Usability</component>
</item>
<item>
<title>Fifth Title</title>
<description>description text</description>
<component>Distribution - Maintain</component>
<timeoriginalestimate seconds="3600">1 hour</timeoriginalestimate>
<timespent seconds="7200">2 hours</timespent>
</item>
</channel>
</rss>
Я хочу, чтобы собрать timeoriginalestimate
и timespent
узлов по component
значения. Я хочу, чтобы сохранить значение component
в любой карте или хэш в качестве ключа и потом значение будет общая разница timeoriginalestimate
и timespent
K = «Распределение - Поддерживайте» V = 2hours-2hours31minutes
некоторые из item
-й не будет иметь component
и некоторые из component
-й не будет иметь значение времени. В этом случае я хотел бы, чтобы значения времени, добавляемые только к текущему итогу для «другого» компонента.
Я пишу это в java, и я планирую распечатать отчет, в котором будет показано, сколько времени было оценено в сравнении с тем, сколько времени было потрачено каждым компонентом. Я не уверен, как это сделать.
Любая помощь будет высоко оценена. Благодаря!
Пример код для подсчета вхождений значения:
private XPath featureXPath = XPath.newInstance("count(//rss/channel/item/type[text()='New Feature'])");
LinkedHashMap<String, Double> metrics = new LinkedHashMap<String, Double>();
metrics.put("New Features", (Double)featureXPath.selectSingleNode(doc));
Я просто не знаю, как я могу добавить значение времени в неизвестный ключ и только добавить значение времени для этого их соответствующей клавиши
Любой код с вашей стороны, что вы пробовали? –
Я добавил немного кода, который работал для выполнения другой задачи ..., которая просто скажет мне количество раз, когда тип элемента имеет значение «новая функция». – robbie