Ссылка на необъявленное исключение объекта при работе с XML

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

23
задан marc_s 13 July 2016 в 13:09
поделиться

6 ответов

XML, в отличие от HTML не определяет объекты (т.е. названные ссылки на символы UNICODE) так & альфа; & mdash; и т.д. не переводятся в их соответствующий символ. Необходимо использовать численное значение вместо этого. Можно только использовать & лейтенант; и & усилитель; в XML

, Если Вы хотите создать HTML, используйте HtmlDocument вместо этого.

26
ответ дан Stephan Leclercq 29 November 2019 в 01:33
поделиться

Попытайтесь заменить & Альфа с

  Α
6
ответ дан FlySwat 29 November 2019 в 01:33
поделиться

Предыдущий ответ является правильным. Другая альтернатива должна связать Ваш документ HTML DTD, где та символьная сущность определяется, и это - стандартное определение DTD XHTML. Ваш xml файл должен включать следующее объявление:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
            "http://www.w3.org/TR/html4/strict.dtd">
6
ответ дан Fernando Miguélez 29 November 2019 в 01:33
поделиться

Вы могли также установить InnerText на "Hello, I am text α – —", заставив XmlDocument выйти из них автоматически. Я думаю.

0
ответ дан configurator 29 November 2019 в 01:33
поделиться

In .Net, you can use the System.Xml.XmlConvert class:

string text = XmlConvert.EncodeName("Hello &alpha;");

Alternatively, you can declare the entities locally by putting the declarations between square brackets in a DOCTYPE declaration. Add the following header to your xml:

<!DOCTYPE documentElement[
<!ENTITY Alpha "&#913;">
<!ENTITY ndash "&#8211;">
<!ENTITY mdash "&#8212;">
]>

Do a google on "html character entities" for the entity definitions.

13
ответ дан 29 November 2019 в 01:33
поделиться

В проекте настройки перейдите в редактор диалога пользовательского интерфейса и щелкните по одному из диалоговых окон. В окне свойств этого диалогового окна можно изменить свойство BannerBitmap на любое нужное изображение.

Это длинное тонкое растровое изображение, которое простирается по всей верхней части диалогового окна. Тот, который я использую, имеет отношение ширины к высоте около 7,5: 1. В частности, это растровое изображение размером 497x69 пикселей (.bmp). Я не помню, как я придумал этот точный размер, но он сработал для меня.

-121--3357722-

После долгих поисков и разочарований при использовании фонового изображения фиксированной высоты (24px) для текстового поля ввода для меня работала комбинация установки высоты, высоты линии и отсутствия набивки.

.form-text {
    color: white;
    outline: none;
    background-image: url(input_text.png);
    border-width: 0px;
    padding: 0px 10px 0px 10px;
    margin: 0px;
    width: 274px;
    height: 24px;
    line-height: 24px;
    vertical-align: middle;
}
-121--865021-

В моей ситуации не подходило использование, так как в нашей системе имелся настраиваемый (настраиваемый) GroupRuResolver, который использовался для загрузки xml.

//setup
public class CustomXmlResolver : XmlUrlResolver { /* ... */ }
String originalXml; //fetched xml with html entities in it

var doc = new XmlDocument();
doc.XmlResolver = new AdCastXmlResolver();

//making use of a transitional dtd
doc.LoadXml("<!DOCTYPE html SYSTEM \"xhtml1-transitional.dtd\" > " + originalXml);
0
ответ дан 29 November 2019 в 01:33
поделиться
Другие вопросы по тегам:

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