I have the following xml contents inside a string variable. i want to get the value of each attribute (JID) in the form of string.
Below is my xml
<query xmlns="http://jabber.org/protocol/muc#admin">
<item affiliation="member" jid="a@something.com" />
<item affiliation="member" jid="b@something.com" />
<item affiliation="member" jid="c@something.com" />
<item affiliation="member" jid="d@something.com" />
<item affiliation="member" jid="e@something.com" />
<item affiliation="member" jid="f@something.com" />
<item affiliation="member" jid="g@something.com" />
<item affiliation="member" jid="h@something.com" />
<item affiliation="member" jid="i@something.com" />
<item affiliation="member" jid="j@something.com" />
</query>
Anyone please suggest some ideas to find this. my expected output is like
a@something.com
b@something.com
c@something.com
d@something.com
e@something.com
f@something.com
To achieve the required output you can use XMLDocument , XMLNode and XMLNodeList as follows
string sb = "<query xmlns=\"http://jabber.org/protocol/muc#admin\">" +
" <item affiliation=\"member\" jid=\"a@something.com\" />" +
" <item affiliation=\"member\" jid=\"b@something.com\" />" +
" <item affiliation=\"member\" jid=\"c@something.com\" />" +
" <item affiliation=\"member\" jid=\"d@something.com\" />" +
" <item affiliation=\"member\" jid=\"e@something.com\" />" +
" <item affiliation=\"member\" jid=\"f@something.com\" />" +
" <item affiliation=\"member\" jid=\"g@something.com\" />" +
" <item affiliation=\"member\" jid=\"h@something.com\" />" +
" <item affiliation=\"member\" jid=\"i@something.com\" />" +
" <item affiliation=\"member\" jid=\"j@something.com\" />" +
" </query>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(sb);
XmlNodeList allXmlNode = doc.GetElementsByTagName("item");
if (allXmlNode.Count >= 1)
{
foreach (XmlNode node in allXmlNode)
{
System.Console.WriteLine(node.Attributes[1].InnerText);
}
}