Hej har ett problem jag inte riktigt vet hur jag ska lösa. Läser följande XML-fil. du behöver "gå upp" en nivå i hirarkin i ditt linquttryck samt hämta ut de olika delarna, attribut och element Tack så mycket Cecilia, kanske dags att boka sig en kurs hos Adskills :) Hejhjälp med linq och C#
<response>
<data>
<path>LDAP://..</path>
<preferredDomainController>DRDC01.net</preferredDomainController>
<filter>objectClass=user</filter>
<propertyList>
<property name="givenname"/>
<property name="sn"/>
<property name="userPricipalName"/>
<property name="description"/>
<property name="mail"/>
</propertyList>
<preferences>
<preference>
<searchPref>ADS_SEARCHPREF_SEARCH_SCOPE</searchPref>
<type>ADSTYPE_INTEGER</type>
<value>ADS_SCOPE_ONELEVEL</value>
</preference>
</preferences>
<objects>
<object class="user"
name="three@TestKund03">
<property name="description">
<value>Test 3</value>
</property>
<property name="mail">
<value>three@testkund03.test</value>
</property>
</object>
<object class="user"
name="Torbjorn@TestKund03">
<property name="sn">
<value>Hedström</value>
</property>
<property name="description">
<value>Beskrivning</value>
</property>
<property name="mail">
<value>nisse@testkund03.test</value>
</property>
</object>
<object class="user"
name="two@TestKund03.com">
<property name="mail">
<value>two@testkund03.test</value>
</property>
</object>
<object class="user"
name="user@TestKund03.test">
<property name="mail">
<value>user@testkund03.test</value>
</property>
</object>
</objects>
</data>
</response>
Koden för att läsa ut och fylla en listview är följande:
XDocument xmlUsers = XDocument.Load("AdSearch-users-result.xml\n");
var UsrResults = from r in xmlUsers.Descendants("objects").Elements("object").Attributes("name")
select r;
foreach (var UsrResult in UsrResults)
{
string[] strArr = { UsrResult.Value, UsrResult.Value, UsrResult.Value, UsrResult.Value,UsrResult.Value};
ListViewItem Items = new ListViewItem(strArr);
ListView1.Items.Add(Items);
}
Men just nu läser jag bara ut <objects>
<object class="user"
name="three@TestKund03">
Men hur gör jag för att fylla mina kolumner med data från givenname,sn, userPrincipalName, description och mail. Givetvis behöver jag behålla det värdet jag tar ut i nuläget. dvs object/name.
Jag vet i fasen hur man ska göra detta och samtidigt peta in det på rätt sätt i min listview, skulle jag bara ha ut data hade man väl kunnat lösa på något annat sätt.
Hjälp, ideer och förslag mottages mer än gärna.
Mvh
Nisse Pettersson
Sv: hjälp med linq och C#
XDocument xmlUsers = XDocument.Load("AdSearch-users-result.xml\n");
var UsrResults = from r in xmlUsers.Descendants("objects").Elements("object")
select r;
foreach (var UsrResult in UsrResults)
{
List<string> strArrList = new List<string>();
var NameAttributes = UsrResult.Attributes("name");
foreach (var obj in NameAttributes)
strArrList.Add(obj.Value);
var PropertyElements = UsrResult.Elements("property").Elements();
foreach (var obj in PropertyElements)
strArrList.Add(obj.Value);
ListViewItem Items = new ListViewItem( strArrList.ToArray());
listView1.Items.Add(Items);
Sv:hjälp med linq och C#
Sv:hjälp med linq och C#
Jag har hittat ett litet fel med denna kod som jag helt ärligt inte förstår så mycket av, så jag tänkte jag kanske kan fråga igen.
I min XML fil eller ström saknas det ibland vissa delar om de inte fylls i korrekt i domänkontrollanten.
<property name="description">
<value>Test 3</value>
</property>
Brukar tex, saknas.
Vad som händer då är att då kommer nästa del laddas i kolumnen för desciption om allt stämde innan. Blir en väldigt konstig lista att läsa ur.
Finns det något sätt att styra i vilka kolumner som varje värde ska hamna i?
Tack på förhand.