Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Difficult one...Active Directory + XML...

Posted on 2007-03-20
5
Medium Priority
?
904 Views
Last Modified: 2013-11-07
Hi,
I read from AD and The CN (commonName) has a property that if i get its value
i get it in XML format.
I'm lookin for some way to enter the nodes and retrieve the value.
My code (to get other properties valus) are:
-------------------------------------------------------------
DirectoryEntry root = new DirectoryEntry(
              "LDAP://10.1.1.1/DC=Internet,DC=Test",
              "User", "Password", AuthenticationTypes.ServerBind);

            DirectorySearcher search = new DirectorySearcher(root);
            search.Filter = "(&(objectClass=user))";
            search.PropertiesToLoad.Add("ID");
            SearchResult result;
            SearchResultCollection resultCol = search.FindAll();
            string[] allUsers = new string[resultCol.Count];
            if (resultCol != null)
            {
                     for (int counter = 0; counter < resultCol.Count; counter++)
                {
                    result = resultCol[counter];
                    if (result.Properties.Contains("ID"))
                    {
                        allUsers[counter] = ((string)result.Properties["ID"][0]);                                      
                        Console.WriteLine("Value : " + allUsers[counter]);
                     }
                }
             }
--------------------------------------------------------------------------
and i get all the values of the ID propert.
Now, there is a property - which its value is in XML :
<names>
   <way> SMS </way>
</names>
The property name is : " Delivery ".
(if i try to retrieve Delivery value - i get an XML result.
I need to get only the value ---  SMS
Is it possible?
Thanks
0
Comment
Question by:udir
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
5 Comments
 
LVL 16

Accepted Solution

by:
jimbobmcgee earned 1500 total points
ID: 18759644
Does it always return valid XML?  And does it return it as a string?
If so, something like:

    // ...
    object deliveryValue = result.Properties["Delivery"];
    string wayValue = null;
    if (deliveryValue != null)
    {
        XmlDocument xml = new XmlDocument();
        xml.LoadXml(deliveryValue.ToString());
        XmlNode wayNode = xml.SelectSingleNode("//names/way");
        if (wayNode != null) wayValue = wayNode.Value;
    }
    // ...

HTH

J.
0
 
LVL 1

Author Comment

by:udir
ID: 18762300
Hi,
Thanks for the reply.
It looks like the right way  (:
the problem is that i get nulls.
(i also changed the line to - object deliveryValue = ((string)result.Properties["ladpcInfodelivery"][0]);  )

Maybe the single Node Method has a wrong path?
the real pass that i wrote in the code in order to get to the Node is : (above i just gave an example)
-------------------------------------------------------------------------------
XmlNode Nodename = xml.SelectSingleNode("//ArrayofApp/App/Name/Modules/Module/Name/DeliveryMethods/DeliveryMethod/Name");
-------------------------------------------------------------------------------
and the XML looks like this (when i get the property Value)
Value : <ArrayOfApp>
            <App>
                <Name>EVoucher</Name>
                <Modules>
                        <Module>
                                <Name>UpdateDelivery</Name>
                                <DeliveryMethods>
                                        <DeliveryMethod>
                                                <Name>HardCopy</Name>
                                        </DeliveryMethod>
                                              <DeliveryMethod>
                                                   <Name>Email</Name>
                                             </DeliveryMethod>
                                      </DeliveryMethods>
                        </Module>
                </Modules>
          </App>
    </ArrayOfApp>

Am i missing somthing?
0
 
LVL 1

Author Comment

by:udir
ID: 18762303
Oh, and i need to get the only the Name value - " EMail " 
0
 
LVL 1

Author Comment

by:udir
ID: 18762624
or SMS
0
 
LVL 1

Author Comment

by:udir
ID: 18763015
OK, let me sumerize the problem so far:
1)  If i write as you wrote :  object deliveryValue = result.Properties["Delivery"];
      i get an error :  Data at the root level is invalid. Line 1, position 1
      at the line :  xml.LoadXml(deliveryValue.ToString());
 (which i understand is becuase the property return not a valid XML but a string (as you can see in the file above - it really begins with " Value : <ArrayOfApp>...........

2)  If i write as I wrote :  object deliveryValue = ((string)result.Properties["ladpcInfodelivery"][0]);
      i get nulls - " wayNode " is null (maybe somthing with the root)

How can it be solved (dosn't metter which way)
Thanks
0

Featured Post

 [eBook] Windows Nano Server

Download this FREE eBook and learn all you need to get started with Windows Nano Server, including deployment options, remote management
and troubleshooting tips and tricks

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question