HI, Я анализирую XML-файл с помощью LibXML в Perl. Проблема, которая у меня есть, это конечные символы (пробелы), которые рассматриваются как текстовый узел. Например, данный вход, как в следующемXML :: LibXML Line Ending (пробелы) Проблема
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT book (title, author, year, price)>
<!ELEMENT books (book*)>
]>
<books>
<book>
<title>Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</books>
СА считает, что число ребенка узлов «книги» является 3, они:
- текстовый узел (содержащий полукокс между
<books>
и<book>
) - элемент узла
<book>
- текстовый узел (содержащий полукокс между
</book>
и</books>
)
Вопрос: как я могу сказать LibXML игнорировать пробелы? Я пытался с no_blanks (то есть $ parser = XML :: LibXML-> new (no_blanks => 1) при построении парсера), но кажется, что он не действует.
Заранее спасибо
Можете ли вы использовать «s/\ s + $ //;» для удаления всего пробела в конце строки. – Space
К сожалению, я не могу просто слепо удалить эти пробелы из каждой строки, потому что результаты могут быть недействительными в соответствии с используемым DTD. – Gilbeg
+1 для Giada De Laurentiis (ну и мне нравится вопрос :) – DVK