Вопрос
У меня есть вопрос о разборе XML. Я экспериментировал с образцом программы и немного изменил ее, чтобы попытаться понять, как работает диапазон, однако я столкнулся с результатом, который я не совсем понимаю, и надеюсь, что некоторые из вас могут пролить свет на то, что может происходить.
Это мой XML -файл:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root xmlns="http://www.test.com">
<ApplicationSettings>
<option_a>"10"</option_a>
<option_b>"24"</option_b>
</ApplicationSettings>
</root>
Я вставил отладки на протяжении всей моей программы, чтобы попытаться понять, что происходит, когда функции вызовы, такие как процессы getChildNodes (), как это называется. Это выход, который я получил:
Parsing xml file...
Processing Root...
Processing children with getChildNodes()...
>>>>>>>>>>> Loop child 0: Node name is: #text
>>>>>>>>>>> Loop child 1: Node name is: ApplicationSettings
= ApplicationSettings processing children with getChildNodes()...
***** iter 0 child name is #text
***** iter 1 child name is option_a
***** iter 2 child name is #text
***** iter 3 child name is option_b
***** iter 4 child name is #text
>>>>>>>>>>> Loop: 2 Node name is: #text
Из вывода я могу легко сделать это правильно проанализировать мой XML -файл. Тем не менее, я заметил, что программа также обнаружила дополнительные узлы с именем #текст (распечатано с использованием функции getNodeName ()). Мой вопрос: что это делают #текст См. И почему они периодически появляются по всему петлям?
Спасибо!
Решение
Те #text
Узлы в вашем примере относятся к пробелу между тегами. Например
<root xmlns="http://www.test.com">
<ApplicationSettings>
Есть линейный корм и четыре пространства между ...com">
а также <App...
.
Вы можете попытаться проанализировать следующее, чтобы увидеть, что произойдет:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root xmlns="http://www.test.com"><ApplicationSettings><option_a>"10"</option_a><option_b>"24"</option_b></ApplicationSettings></root>