в моем GWT
веб-приложении я должен получить данные XML с сервера SOAP
.Я не столкнулся с какими-либо трудностями при разборе этих XML-данных в клиенте, пока у меня не будет этой структуры XML для анализа:
<?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)?