Как обойти закрытый тег XML без открытого тега

Вполне возможно, что люди, которые подписываются на вашу службу, вводят электронные письма с ошибками ввода, которые вы не исправляете. Например: chris@gmial.com -or- james@hotnail.com.

И такие домены сконфигурированы для использования в качестве spamtraps , которые автоматически помещают IP-адрес вашего почтового сервера и / или домен и повредить его репутации.

Чтобы избежать этого, выполните двойную проверку для адреса электронной почты, который вводится при подписке на продукт. Также отправьте электронное письмо с подтверждением, чтобы убедиться, что этот адрес электронной почты проверен на 100% человеком, который вводит письмо с подтверждением, прежде чем отправлять им ключ продукта или принять их подписку. Письмо с подтверждением должно требовать, чтобы получатель щелкнул ссылку или ответ, чтобы действительно подтвердить, что владельцем почтового ящика является человек, который зарегистрировался.

0
задан zx485 17 March 2019 в 21:47
поделиться

2 ответа

Вы используете метод getElementsByTagName, который возвращает объект org.w3c.dom.NodeList. В случае отсутствия элементов с данным именем NodeList.getLength метод возвращает 0. Итак, код ниже безопасно получает текстовое содержимое:

NodeList locations = document.getElementsByTagName("location");
if (locations.getLength() > 0) {
    String textContent = locations.item(0).getTextContent();
    System.out.println(textContent);
}

Или вы можете создать метод, который будет это делать:

public static String getFirstTextContent(Document node, String tagName) {
    NodeList locations = node.getElementsByTagName(tagName);
    if (locations.getLength() > 0) {
        return locations.item(0).getTextContent();
    }

    return "";
}

и ваш код может выглядеть так: ]

0
ответ дан Michał Ziober 17 March 2019 в 21:47
поделиться

В примере xml:

<deviceInfo>
    <device>TV2345</device>
    <deviceType>Television</deviceType>
    <location />
    <size />
</deviceInfo>

Нет тега deviceId, но вы пытаетесь получить первый элемент из NodeList:

eElement.getElementsByTagName("deviceId").item(0);

И этой операции сбой с java.lang.ArrayIndexOutOfBoundsException

0
ответ дан glw 17 March 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: