Avatar billede segato Nybegynder
11. februar 2005 - 10:50 Der er 6 kommentarer og
1 løsning

XPath and operator

Nogen der kan give et bud på en xpath der giver dig alle nodes som indeholder to givne noder. F.eks. giv mig alle noder som har en <a> og en <b> child.
Avatar billede softspot Forsker
11. februar 2005 - 17:27 #1
Jeg skulle mene dette kunne gøre tricket:

//*[count(a) != 0 and count(b) != 0]

den burde finde alle nodes som har mindst en af både <a> og <b>. Hvis du skal finde nodes som har et specifikt antal af en given node-type, kan du benytte noget i stil med:

//*[count(a) = 2 and count(b) = 1]
Avatar billede segato Nybegynder
11. februar 2005 - 18:23 #2
hvordan virker de med SelectNodes? Det der returnere jo true eller false? men du svarer på spørgsmålet så point skal du da have:D
Avatar billede arne_v Ekspert
11. februar 2005 - 21:50 #3
Lige ud af landevejen.

Eksempel:

using System;
using System.Xml;

class MainClass
{
    public static void Main(string[] args)
    {
        string xml = @"
<root>
  <elm id='1'>
    <a>...</a>
  </elm>
  <elm id='2'>
    <a>...</a>
    <b>...</b>
  </elm>
  <elm id='3'>
    <b>...</b>
  </elm>
  <elm id='4'>
    <a>...</a>
    <b>...</b>
  </elm>
  <elm id='5'/>
</root>";
        XmlDocument doc = new XmlDocument();
        doc.LoadXml(xml);
        XmlNodeList ab = doc.SelectNodes("/root/elm[count(a)=1 and count(b)=1]");
        for(int i = 0; i < ab.Count; i++)
        {
            Console.WriteLine(ab[i].OuterXml);
        }
    }
}

output:

<elm id="2"><a>...</a><b>...</b></elm>
<elm id="4"><a>...</a><b>...</b></elm>
Avatar billede softspot Forsker
11. februar 2005 - 21:58 #4
segato >> Jeg er ikke enig i at den returnerer true eller false, den returnerer alle de elementer som har et eller flere underelementer med tagnavn a og b (den første af dem)... og det uanset hvilket niveau i XML-dokumentet disse elementer ligger.
Avatar billede segato Nybegynder
12. februar 2005 - 12:00 #5
J
Avatar billede segato Nybegynder
12. februar 2005 - 12:01 #6
Du behøver ik være uenig det var ik rigtigt en diskution men mere spørgende:D Takker for hjælpen begge to.
Avatar billede softspot Forsker
12. februar 2005 - 12:19 #7
Det lød bare mere konstaterende end spørgende, men hey, hvis du kan bruge det så er det perfekt med mig :) tak for points :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester