в моем GWT
веб-приложении, я должен получить данные XML с сервера SOAP
. я еще не сталкивался с какими-либо трудностей разбора это XML-данных в клиенте, пока я не иметь эту структуру XML для синтаксического анализа:Анализ XML в GWT с XMLParser
<?xml version="1.0" encoding="UTF-8"?>
<root>
<data>
<list row="0">
<product_name>A</product_name>
<desc>product A</desc>
<promo>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<data/>
</root>
</promo>
</list>
<list row="1">
<product_name>B</product_name>
<desc>product B</desc>
<promo>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<data>
<list row="0">
<pname>Test</pname>
<pdesc>Test promo only</pdesc>
</list>
</data>
</root>
</promo>
</list>
</data>
<return_code>0</return_code>
</root>
, имеющие этот XML, я извлек PRODUCT_NAME и DESC каждого список с NodeList
и Element
. но я также должен получить промо каждого продукта.
я попробовал получать промо по:
Document d = XMLParser.parse(xml); // xml - xml data retrieved from server
Element element = d.getDocumentElement();
NodeList nlist = element.getElementsByTagName("list");
final int count = nlist.getLength();
for(int i = 0; i < count; ++i) {
final Element list = (Element) nlist.item(i);
String product_name = ((Text)list.getElementsByTagName("fproductid")
.item(0).getFirstChild()).getData()
...
// get promo
String promo = d.getElementsByTagName("promo").item(0).
getFirstChild().getNodeValue();
Document dpromo = XMLParser.parse(promo);
...
}
, когда я проверить что значение каждого промо, у меня есть один и тот же вывод:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<data/>
</root>
любую идею, как получить поля/элемент внутри промо-узла (т. е. pname, pdesc)?