2010-02-11 5 views
9
def getText(nodelist): 
    """Extracts the text between XML tags 

    I took this directly from http://docs.python.org/library/xml.dom.minidom.html. 
    For example, if I have a tag <Tag>525</Tag> this method returns me '525' 
    """ 
    rc = "" 
    for node in nodelist: 
     if node.nodeType == node.TEXT_NODE: 
      rc = rc + node.data 
    return rc 

Donne-moi IndentationError: unindent does not match any outer indentation level(python) docstring provoque une erreur d'indentation

def getText(nodelist): 
    rc = "" 
    for node in nodelist: 
     if node.nodeType == node.TEXT_NODE: 
      rc = rc + node.data 
    return rc 

ne fonctionne pas. Tout ce que je fais est de supprimer le commentaire Docstring. Que se passe-t-il?

+0

Notez qu'il est généralement plus rapide à faire: rc = [], rc.append (node.data), return '' .join (rc). C'est parce que vous n'avez pas besoin de créer une nouvelle chaîne à chaque fois. – EOL

+0

'return '' .join (n.data pour n dans nodelist si n.nodeType == n.TEXT_NODE)' –

Répondre

12

Votre docstring commence par onglets. Faites votre code seulement utiliser des espaces pour l'indentation (ou seulement les onglets), y compris l'indentation pour les docstrings.

+0

Problème similaire: Les lignes vides doivent avoir la même quantité d'espaces de début que le code environnant. – cfi

+0

Et pourtant, ils prétendent que Python est un bon débutant, adapté aux adolescents. –

+0

Je comprends que beaucoup de gens ont une forte opinion contre Python mais c'est encore une langue très conviviale pour les débutants! :-) –

2

Assurez-vous de ne pas mélanger les espaces et les onglets pour votre indentation

Questions connexes