sample.xml
...
<parent_tag>
<child_tag>1</child_tag>
<child_tag>2</child_tag>
<child_tag>3</child_tag>
<child_tag>4</child_tag>
</parent_tag>
...
Попытка разобрать xml выше, используя коды Kotlin ниже.
Parser.kt
import javax.xml.parsers.DocumentBuilderFactory
...
val rootDoc = builder.parse(activity.resources.assets.open("sample.xml"))
val doc = rootDoc.documentElement
val children = doc.getElementsByTagName("parent_tag").item(0).childNodes
...
Но children.length
возвращает 9.
Я полагаю, это потому, что синтаксический анализатор считает разрыв строки между тегами узлом.
(\ n, 1, \ n, 2, \ n, 3, \ n, 4, \ n)
Когда я удаляю все пустое пространство, как это, он работает хорошо. (children.length
равно 4.)
...
<parent_tag><child_tag>1</child_tag><child_tag>2</child_tag>...</parent_tag>
...
Есть ли правильный способ предотвратить синтаксический анализатор, считающий разрыв строки (новую строку) как узел?