У меня есть ответ XML:
<abc:parent>
<abc:item>
...
</abc:item>
<abc:item>
...
</abc:item>
</abc:parent>
Это также может быть только с одним дочерним элементом:
<abc:parent>
<abc:item>
...
</abc:item>
</abc:parent>
Ранее родительский имел атрибут 'SOAP-ENC: arrayType 'для удобного определения того, что он содержит массив дочерних элементов, но теперь ответ имеет ранее описанный формат.
Пример того, как это было раньше:
<abc:parent xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="Struct[1]" SOAP-ENC:offset="[0]">
<abc:item>
...
</abc:item>
</abc:parent>
Пример предыдущей проверки:
private void parseNode(DomNode node, String xpath) {
boolean isLeaf = true;
for (DomNode childNode : node.getChildren()) {
if (DomNode.TEXT_NODE != childNode.getNodeType()) {
isLeaf = false;
}
}
if (!isLeaf) {
if (node instanceof DomElement) {
DomElement eNode = (DomElement)node;
String arrayType = eNode.getAttribute("SOAP-ENC:arrayType");
if (!PkUtil.isEmpty(arrayType)) {
// we have a node with an array of children
}
}
}
}
У меня нет контроля над ответным сообщением.
Как я могу точно сказать, что родительский элемент содержит массив дочерних элементов?Мне кажется, что это даже невозможно с этим результатом и информацией.