Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


LINQ?

Postades av 2013-08-07 11:23:33 - Pontus Fiskhammar, i forum c# (c-sharp), Tråden har 7 Kommentarer och lästs av 5587 personer

Har en xmlfil enligt nedan och vill hämta ut ett värde från en bestämd node, nämligen TEST2 med type=X

<HEADER>
<TEST1>1</TEST1>
<TEST2 type="X">test2>/TEST2>
<TEST2 type="Y">test3>/TEST2>
</HEADER>

Hur ser det ut i C# om jag använder mig System.Xml.Linq.XDocument XMLDoc = System.Xml.Linq.XDocument.Load(XMLFILE);


Svara

Sv: LINQ?

Postades av 2013-08-07 13:14:49 - Tomas Granlund

			var xml = @"<HEADER>
<TEST1>1</TEST1>
<TEST2 type=""X"">test2</TEST2>
<TEST2 type=""Y"">test3</TEST2>
</HEADER>";
			var doc = XDocument.Parse(xml);
			var valuesOfTest2OfTypeX = from item in doc.Descendants("TEST2")
										where item.Attribute("type").Value == "X"
										select item.Value;
			foreach (var value in valuesOfTest2OfTypeX)
			{
				Console.WriteLine(value);	
			}


Svara

Sv:LINQ?

Postades av 2013-08-07 13:25:51 - Pontus Fiskhammar

Tack det funkar bra!

Men om man lägger till följande värde i <HEAD xmlns=""http://www.test.no/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:schemaLocation=""http://www.test.no/XMLSchema test_v3p3.xsd"">

Då funkar det inte, hur kan jag kringå det?


Svara

Sv: LINQ?

Postades av 2013-08-07 16:27:06 - Tomas Granlund

Om du deklarerar ett namespace måste du använda det också när du refererar till noderna:

			var ns = XNamespace.Get("http://www.test.no/XMLSchema");
			var xml = @"<HEADER xmlns=""http://www.test.no/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:schemaLocation=""http://www.test.no/XMLSchema test_v3p3.xsd"">
<TEST1>1</TEST1>
<TEST2 type=""X"">test2</TEST2>
<TEST2 type=""Y"">test3</TEST2>
</HEADER>";
			var doc = XDocument.Parse(xml);
			var valuesOfTest2OfTypeX = from item in doc.Descendants(ns + "TEST2")
										where item.Attribute("type").Value == "X"
										select item.Value;
			foreach (var value in valuesOfTest2OfTypeX)
			{
				Console.WriteLine(value);	
			}
		}

Det finns inget sätt (så vitt jag vet iaf) att sätta default namespace på XDocument, utan det blir nog till att alltid komma ihåg att köra
doc.Descendants(ns + nodnamn) 

Alternativt trixxa ihop en egen extension eller så förstås


Svara

Sv:LINQ?

Postades av 2013-08-08 08:23:49 - Pontus Fiskhammar

Lysande, tack så väldigt mycket!


Svara

Sv: LINQ?

Postades av 2013-08-08 11:02:37 - Pontus Fiskhammar

Kom på en sak till, säg att det värdet som jag precis plockade ut, det vill jag nu uppdatera med ett nytt till xml filen.

Funkar det?


Svara

Sv:LINQ?

Postades av 2013-08-08 11:42:31 - Tomas Granlund

Japp, fast det kommer bli i två "steg". Selektera ut det som ska pillas på, och sen (iterera över det och) pilla på det.

foreach (var descendant in doc.Descendants(ns + "TEST2").Where(d => d.Attribute("type").Value == "X")) // steg 1
	descendant.Value += " och så ett nytt värde"; // steg 2

// för att få ner ändringarna på disk
doc.Save("kalle.xml");


Svara

Sv: LINQ?

Postades av 2013-08-08 12:27:05 - Pontus Fiskhammar

Tack!!


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 635
27 958
271 741
509
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies