IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[RSS] + [Linq] geocode


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut [RSS] + [Linq] geocode
    Voila j'aimerai creer l'element : <geo:lat> </geo:lat>

    a l'aide du system.xml.linq (xelement , xattribute , xnamespace. ....)

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    ouai, d'accord, c'est très bien comme projet

    Et sinon la question c'est quoi ?

  3. #3
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    il me semble que la question est claire :

    j'aimerai creer le rss suivant a l'aide des xelements et autres class du system.xml.linq;

    <geo:lat> 2 </geo:lat>

    seul probleme si je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XElementelement = new XElement("geo:lat","2");
    je recois une erreur qui stipule que le name ne peut contenir le char ":";

    donc ma question est comment creer une node du type:

    <A:B> blabla </A:B> avec ":"

  4. #4
    Membre averti
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 349
    Points
    349
    Par défaut
    le "geo:" est le namespace, regarde sur le constructeur du XElement si tu peux mettre un namespace qui lui sera simplement "geo".

  5. #5
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    il y a l'operator "+" qui permet lors de cration d'un xname d'associer un namespace seul probleme :

    jai reussi pour le moment a reproduire uniquement:

    <xmlns:geo> ..

    ou si vous preferez:
    <xlmns:A>

  6. #6
    Membre averti
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 349
    Points
    349
    Par défaut
    et si tu nous montrais ton code?

  7. #7
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    voila ce que j'aimerai reproduire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
      <channel>
        <title>Mobyname</title>
        <link></link>
        <item>
          <title>fred</title>
          <description>3</description>
          <geo:lat>46.2913246</geo:lat>
          <geo:long>-122.2658157</geo:long>
        </item>    
      </channel>
    </rss>
    et voila ce que je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    protected void Page_Load(object sender, EventArgs e)
            {
                MobyContext.MobyDataContext db = new MobyContext.MobyDataContext();
     
                XAttribute aw = new XAttribute(XNamespace.Xmlns + "geo", "http://www.w3.org/2003/01/geo/wgs84_pos#");
     
                var geoRSS = new XDocument(new XDeclaration("2.0", "utf-8", "yes"),
                                            new XElement("rss", aw,
                                                new XAttribute("version", "2.0"),
                                                new XElement("channel",
                                                    new XElement("title", "Northwind Customer Locations"),
                                                    new XElement("link", ""),
                                                    from users in db.aspnet_Users
                                                    let Desc = string.Format("{0}, {1}", users.UserName, users.LoweredUserName)
                                                    select new XElement("item",
                                                        new XElement("title", users.UserName),
                                                        new XElement("description", Desc),
                                                        GetGeoCode("46.2913246", "-122.2658157").Descendants()
                                                                       )
                                                            )
                                                        )
                                           );
     
                Response.ContentType = "text/xml";
     
                Response.Write(geoRSS.ToString());
            }
    fonction GetGeoCode qui me pose probleme qui est suppose me retourner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <geo:lat>46.2913246</geo:lat>
          <geo:long>-122.2658157</geo:long>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    XElement GetGeoCode(string lat, string longitude)
            {
                XNamespace geoNamespace = "http://www.w3.org/2003/01/geo/wgs84_pos";
                XElement myElem = new XElement("location",
                                        new XElement(geoNamespace + "lat", new XAttribute(XNamespace.Xmlns + "geo", "http://www.w3.org/2003/01/geo/wgs84_pos#"), lat),
                                        new XElement(geoNamespace + "long", new XAttribute(XNamespace.Xmlns + "geo", "http://www.w3.org/2003/01/geo/wgs84_pos#"), longitude)
                                              );
     
                return myElem;
            }
    geo: etant un namespace definit en haut apres le rss:

    merci pour l'aide je galere pas mal .
    j'ai obtenu des trucs {geo}lat et ainsi de suite.

    ps je veux pas passer par un stringbuilder pour le loader dans un xml.

  8. #8
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Le code suivant:
    XElement myElem = newXElement("location", newXAttribute(XNamespace.Xmlns + "geo", geoNamespace),
    newXElement(geoNamespace + "lat", 10),
    newXElement(geoNamespace + "long", 20)
    );



    te donnera:

    <location xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos">
    <geo:lat>10</geo:lat>
    <geo:long>20</geo:long>
    </location>

  9. #9
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    voila ce que j'obtiens avec ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          <lat xmlns="http://www.w3.org/2003/01/geo/wgs84_pos#">0.000000000000</lat>
          <long xmlns="http://www.w3.org/2003/01/geo/wgs84_pos#">0.000000000000</long>
    mais je viens de reussir a resoudre mon probleme grace a toi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    XNamespace oXNamespace = "http://www.w3.org/2003/01/geo/wgs84_pos";
                XElement myElem = new XElement("location",
                                    new XElement(oXNamespace + "lat", lat,
                                        new XAttribute(XNamespace.Xmlns + "geo", oXNamespace)),
                                    new XElement(oXNamespace + "long", longitude,
                                            new XAttribute(XNamespace.Xmlns + "geo", oXNamespace))
                                               );
    un peu different que ce que j'avais demandais mais je n'arrive pas a le reproduire mais ceci marche.

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo