private static String getChildText(Element parent, String tag) {
NodeList nl = parent.getElementsByTagName(tag);
if (nl == null || nl.getLength() == 0) return "";
Node node = nl.item(0);
StringBuilder sb = new StringBuilder();
NodeList children = node.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
Node c = children.item(i);
if (c.getNodeType() == Node.TEXT_NODE || c.getNodeType() == Node.CDATA_SECTION_NODE) {
sb.append(c.getNodeValue());
}
}
return sb.toString().trim();
}
cHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldENoaWxkVGV4dChFbGVtZW50IHBhcmVudCwgU3RyaW5nIHRhZykgewoKICAgIE5vZGVMaXN0IG5sID0gcGFyZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZyk7CgogICAgaWYgKG5sID09IG51bGwgfHwgbmwuZ2V0TGVuZ3RoKCkgPT0gMCkgcmV0dXJuICIiOwoKICAgIE5vZGUgbm9kZSA9IG5sLml0ZW0oMCk7CgoKCiAgICBTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKCiAgICBOb2RlTGlzdCBjaGlsZHJlbiA9IG5vZGUuZ2V0Q2hpbGROb2RlcygpOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRyZW4uZ2V0TGVuZ3RoKCk7IGkrKykgewoKICAgICAgICBOb2RlIGMgPSBjaGlsZHJlbi5pdGVtKGkpOwoKICAgICAgICBpZiAoYy5nZXROb2RlVHlwZSgpID09IE5vZGUuVEVYVF9OT0RFIHx8IGMuZ2V0Tm9kZVR5cGUoKSA9PSBOb2RlLkNEQVRBX1NFQ1RJT05fTk9ERSkgewoKICAgICAgICAgICAgc2IuYXBwZW5kKGMuZ2V0Tm9kZVZhbHVlKCkpOwoKICAgICAgICB9CgogICAgfQoKICAgIHJldHVybiBzYi50b1N0cmluZygpLnRyaW0oKTsKCn0K