XML parse issue

  • Thread starter Thread starter mazdotnet
  • Start date Start date
M

mazdotnet

Hi, I have the following XML and I like to grab the node that is in
'List2' and mobilenum=416-222-5435

I have tried the following,
XmlNode xmlNode = xmlDoc.SelectSingleNode(@"/contacts/list
[@name='List2']/contact/@mobilenum=416-222-5435");
and
XmlNode xmlNode = xmlDoc.SelectSingleNode(@"/contacts/list
[@name='List2']/contact/@mobilenum='416-222-5435'");
but I get an error 'Expression must evaluate to a node-set.' Any
idea?

<contacts>
<list name="list1">
<contact>
<name>Name1</name>
<mobilenum>416-223-3345</mobilenum>
<email>[email protected]</email>
<profession>Web Manager</profession>
</contact>
</list>
<list name="List2">
<contact>
<name>Name2</name>
<mobilenum>416-222-5435</mobilenum>
<email>email</email>
<professionbbbb</profession>
</contact>
<contact>
<name>Name</name>
<mobilenum>416-223-2342</mobilenum>
<email>someemail</email>
<profession>aaaa</profession>
</contact>
</list>
</contacts>
Thanks
Maz.
 
Mr. Arnold said:
mazdotnet said:
Hi, I have the following XML and I like to grab the node that is in
'List2' and mobilenum=416-222-5435

I have tried the following,
XmlNode xmlNode = xmlDoc.SelectSingleNode(@"/contacts/list
[@name='List2']/contact/@mobilenum=416-222-5435");
and
XmlNode xmlNode = xmlDoc.SelectSingleNode(@"/contacts/list
[@name='List2']/contact/@mobilenum='416-222-5435'");
but I get an error 'Expression must evaluate to a node-set.' Any
idea?

<contacts>
<list name="list1">
<contact>
<name>Name1</name>
<mobilenum>416-223-3345</mobilenum>
<email>[email protected]</email>
<profession>Web Manager</profession>
</contact>
</list>
<list name="List2">
<contact>
<name>Name2</name>
<mobilenum>416-222-5435</mobilenum>
<email>email</email>
<professionbbbb</profession>
</contact>
<contact>
<name>Name</name>
<mobilenum>416-223-2342</mobilenum>
<email>someemail</email>
<profession>aaaa</profession>
</contact>
</list>
</contacts>
Thanks
Maz.

What's that below? If the XML can't be displayed by a browser (a test
for format correctness) such as IE, then why try to access it in code?

<professionbbbb</profession>

And on the xpath, you used @mobilenum (i.e. as attribute), when
mobilenum is element on all threee contacts.

Xpath /contacts/list[@name='List2']/contact[mobilenum='416-222-5435']
should work.
 
Back
Top