У меня есть проблема, описанная в заголовке. Я создаю XML файл из MySQL данных, который существует в течение некоторого времени. Я почти закончил с файлом XML, кроме этого. Часть таблиц, соответствующих моей проблеме:
products_extra_fields
products_extra_fields_id | products_extra_fields_name
-------------------------|---------------------------
1 | cpu
2 | hdd
3 | diagonal
4 | gpu
products
products_id | products_name | products_quantity
------------| --------------|-------------------
1 | product name | 123
2 | product name | 125
3 | product name | 12
4 | product name | 43
products_to_products_extra_fields
products_id | products_extra_fields_id | products_extra_fields_value
-------------|--------------------------|----------------------------
3 | 1 | i7
2 | 4 | geforce
2 | 1 | i5
3 | 3 | 15.6
В этих таблицах много записей и значений, так что это просто упрощенная версия. Поэтому мне нужно сделать что-то вроде этого:
<attrs>
<a name="cpu">
<![CDATA[INTEL]]>
</a>
<a name="gpu">
<![CDATA[NVIDIA]]>
</a>
<a name="HDD">
<![CDATA[256SSD]]>
</a>
</attrs>
и так далее для стольких атрибутов, которые есть в одном продукте. Я пытался заполнить <attrs></attrs>
этим:
for (int i = 0; i <= 5; i++) {
attributes.appendChild(singleAttribute.cloneNode(true));
singleAttribute.setAttributeNode(attributeValue);
attributeValue.setValue(_productRS.getString("products_extra_fields_name"));
singleAttribute.appendChild(xmlDoc.createTextNode(_productRS.getString("products_extra_fields_value")));
}
где
Element attributes = xmlDoc.createElement("attrs");
Element singleAttribute = xmlDoc.createElement("a");
Я знаю, что источником этой проблемы является основная итерация while((rs!=null) && (rs.next())){...}
, где rs - ResultSet принимает только один products_extra_fields_id
, соответствующий products_id
, и мне нужно взять все products_extra_fields_id
за один products_id
. Приведенный выше код дает мне такой результат:
<a name="cpu">
<![CDATA[INTEL]]>
</a>
<a name="cpu">
<![CDATA[INTELINTEL]]>
</a>
<a name="cpu">
<![CDATA[INTELINTELINTEL]]>
</a>
...
Я искал решение этой проблемы часами, но безрезультатно :(. Я даже не близок к тому, чтобы быть истощенным в этом виде кодига, поэтому мне нужно некоторая помощь или подсказки, чтобы понять, как я могу получить правильные результаты.