12
votes

SCALA: Attribut XML Analysage

J'essaie d'analyser un flux RSS qui ressemble à ceci pour l'attribut "date": xxx

J'ai essayé plusieurs versions différentes de ceci: (RSSFeed contient les données RSS) < / p> xxx

mais rien ne semble fonctionner. Qu'est-ce que je manque?

Toute aide serait vraiment appréciée!


2 commentaires

RSSFeed ? Ne devrait-il pas être RSS ?


flux RSS est une variable contenant les données RSS


4 Réponses :


20
votes

Le "Y" dans est un préfixe d'espace de noms. Ce n'est pas une partie du nom. En outre, les attributs sont mentionnés avec un '@'. Essayez ceci: xxx


0 commentaires

14
votes

Les attributs sont récupérés à l'aide du sélecteur "@ATRNAME". Ainsi, votre sélecteur devrait en réalité être quelque chose comme ce qui suit: xxx


2 commentaires

Notez le fichier .text pour obtenir la date comme une chaîne plutôt qu'un nœud


En effet. La méthode texte est généralement préférable à tostring car il manipulera gracieusement le cas où votre sélecteur a saisi une pièce de XML plutôt que par un nœud .



3
votes

Aussi, réfléchissez à la différence entre \ strong> et \\ strong>. \\ strong> cherche un descendant, pas seulement un enfant, comme celui-ci (notez qu'il saute du canal à C, sans élément): xxx pré>

ou ce genre de chose si vous voulez juste tous les éléments et ne vous souciez pas de leurs parents: p> xxx pré>

et cela spécifie un chemin exact: P>

scala> (rssFeed \ "channel" \ "item" \ "c" \ "@date").text
res25: String = AA


0 commentaires

3
votes

Pensez également à utiliser des comprises de séquence. Ils sont utiles pour traiter avec XML, en particulier si vous avez besoin de conditions compliquées.

pour le cas simple: xxx

vous donne l'attribut de date de tout dans RSSFeed. < / p>

mais si vous voulez quelque chose de plus complexe: xxx

vous donne: xxx


0 commentaires