Avatar billede flvind Nybegynder
08. maj 2007 - 08:30 Der er 7 kommentarer og
1 løsning

Xpath parentnodes?

Hej
Jeg sidder med et problem med følgende XML fil

--XML start--
<?xml version="1.0"?>
<Root>
  <Product>
    <Book>
        <Geek>
            <O1>
                <Title>
                    <Type>Geek</Type>
                    <Name>c# for dummies</Name>
                    <Pages>400</Pages>
                </Title>
            </01>
            <O2>
                <Title>
                    <Type>Geek</Type>
                    <Name>c for dummies</Name>
                    <Pages>300</Pages>
                </Title>
            </02>
            <O3>
                <Title>
                    <Type>Geek</Type>
                    <Name>VB for dummies</Name>
                    <Pages>500</Pages>
                </Title>
            </03>
            <04>
                <Title>
                    <Type>Geek</Type>
                    <Name>Java for dummies</Name>
                    <Pages>200</Pages>
                </Title>
            </04>
        </Geek>
        <Cook>
            <O5>
                <Title>
                    <Type>Cook</Type>
                    <Name>c# for dummies</Name>
                    <Pages>400</Pages>
                </Title>
            </05>
            <O6>
                <Title>
                    <Type>Cook</Type>
                    <Name>c for dummies</Name>
                    <Pages>300</Pages>
                </Title>
            </06>
            <O7>
                <Title>
                    <Type>Cook</Type>
                    <Name>VB for dummies</Name>
                    <Pages>500</Pages>
                </Title>
            </07>
            <08>
                <Title>
                    <Type>Geek</Type>
                    <Name>Java for dummies</Name>
                    <Pages>200</Pages>
                </Title>
            </08>
        </Cook>       
    </Book>
  </Product>
</Root>
--XML slut--

Jeg ønsker at kunne søge på bogens type og så få en fabrikeret liste af id'er som har samme type.
Eksempelvis en søgning på Geek vil komme med en liste der ser således ud
Geek.01.Title
Geek.02.Title
Geek.03.Title
Geek.04.Title

Jeg benytter følgende til at finde typen.
---kode start---
  XmlDocument typeDoc = new XmlDocument();
  typeDoc.Load(xmlFile);
  XmlNodeList searchList = typeDoc.DocumentElement.SelectNodes(//Title);
---kode slut---

Nogen der har forslag til hvordan jeg kommer videre????
Avatar billede dr_chaos Nybegynder
08. maj 2007 - 09:40 #1
noget med
XmlNodeList searchList = typeDoc.SelectNodes("//Title[Type='Geek']");
Avatar billede flvind Nybegynder
08. maj 2007 - 09:48 #2
Undskyld sådan var det også ment at min søgning skulle se ud. Problemet er den fabrikerede liste af id'er som skal indeholde parentnode og ancestors.
Avatar billede dr_chaos Nybegynder
08. maj 2007 - 10:28 #3
Så skal du prøve at bruge
foreach(XmlNode xn in searchList )
{
Debug.Write(xn.ParentNode.Name);
}
Avatar billede flvind Nybegynder
08. maj 2007 - 13:38 #4
Søgning kom til at se ca sådan ud, men nu er problemet bare at jeg gerne vil kunne søge på id'et. Hvilket er et problem da jeg skal se XML filen igennem efter de enkelte dele som min temp består af.

---kode start---
XmlNodeList searchList = typeDoc.DocumentElement.SelectNodes(//Title[Type='Geek']);
           
foreach (XmlNode typeNode in searchList)
{
  while (tempNode.Name != "Product")
  {
        if (temp == "")
        {
            temp = tempNode.Name + temp;
        }
        else
        {
            temp = tempNode.Name + "." + temp;
        }
    }
    tempNode = tempNode.ParentNode;
  }
}
idList.Add(temp);
---kode stop---

Nogen forslag????
Avatar billede dr_chaos Nybegynder
12. maj 2007 - 08:22 #5
tror jeg ikke at du kan.
Jeg forstår ikke helt hvorfor du bruger 08 og 07 osv.
Avatar billede flvind Nybegynder
15. maj 2007 - 13:49 #6
Jeg har opbygget et stringbuilder som opdeler den konstruerede variabel i den bestanddele den består af hvorefter jeg kan foretage en søgning på dem. Jeg benytter opbygningen grundet et andet dokument jeg skal benytte i samme format.
Har du et andet forslag??
Avatar billede dr_chaos Nybegynder
15. maj 2007 - 22:38 #7
i stedet for 07 og 08 ville jeg give det et fast xml navn.
Du kan så sætte 07 og 08 som attributter på elementet.
Avatar billede flvind Nybegynder
31. oktober 2007 - 15:33 #8
lukkes
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