Zjištění atributů u nodu   zodpovězená otázka

C#, Algoritmy, I/O operace

Ahoj, tvořím si jednoduchý XML dokument a na základě jeho čtení pak vytvářím instance tříd při používání dvou různých konstruktorů.

Potřeboval bych vědět jak jednoduše zjistit zda-li určitý nod v XML obsahuje nějaké určité atributy (konkrétně atributy targetpositiony a targetpositionx).

XmlDocument dokument = new XmlDocument();
            dokument.Load("mission.xml");

            int i = 0;

            foreach (XmlNode n in dokument.SelectNodes("/map/objekt"))
            {
                if (Zde se zeptat jestli nod n obsahuje atributy targetpositionx a targetpositiony)
                {
                    objekty[i] = new GameObject(
                        new Vector2
                        (
                            Convert.ToSingle(n.Attributes["positionx"].Value),
                            Convert.ToSingle(n.Attributes["positiony"].Value)),
                        new Vector2
                        (
                            Convert.ToSingle(n.Attributes["targetpositionx"].Value),
                            Convert.ToSingle(n.Attributes["targetpositiony"].Value)
                        ));
                    i++;
                }
                else 
                {
                    objekty[i] = new GameObject(new Vector2(
                        Convert.ToSingle(n.Attributes["positionx"].Value),
                        Convert.ToSingle(n.Attributes["positiony"].Value)));
                    i++;
                }
            }

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Stačí atribut otestovat na NULL.

Příklad:

if (n.Attributes["targetpositionx"] != null)
{
  // obsahuje pozadovany atribut
}
else
{
  // neobsahuje pozadovany atribut
}

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Je mi to docela záhadou, že mi to teď funguje a předtím mi to nešlo. Díky moc za odpověď. :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback