HI, Je suis en train d'analyser un fichier XML en utilisant LibXML en Perl. Le problème que j'ai est les caractères de fin (espaces) est traité comme un nœud de texte. Par exemple, étant donné une entrée comme suitXML :: Fin de ligne LibXML (espace) Problème
<?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>
L'analyseur pense que le nombre d'enfants de noeuds « livres » est 3, ils sont les suivants:
-
noeud texte
- (contenant le charbon entre
<books>
et<book>
) noeud d'élément
- de
<book>
noeud de texte
- (contenant le produit de carbonisation entre
</book>
et</books>
)
Comment puis-je dire à LibXML d'ignorer les espaces? J'ai essayé avec no_blanks (c'est $ parser = XML :: LibXML-> new (no_blanks => 1) lors de la construction de l'analyseur) mais il semble que cela n'a aucun effet.
Merci à l'avance
pour supprimer tout espace blanc à la fin de la ligne. – Space
Malheureusement, je ne peux pas simplement supprimer aveuglément ces espaces de chaque ligne parce que les résultats pourraient ne pas être valables selon la DTD que j'utilise. – Gilbeg
+1 pour Giada De Laurentiis (bien, et j'aime la question :) – DVK