I was trying to filter MY XML data, but i am having problem to get distinct attributes from "onl:stories/onl:story". I want to get the "onl:stories/onl:story" attributes key value, The below code works but return the same value for each item
Here is My C# Code
XmlDocument xmlDoc = new XmlDocument();
//xmlDoc.LoadXml(Return_XmLFeedByURL("http://jpedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories&categories=CPBJ01"));
xmlDoc.LoadXml(Return_XmLFeedByURL("http://jpedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories&categories=" + strCategory));
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(xmlDoc.NameTable);
namespaceManager.AddNamespace("onl", "http://www.saxotech.com/online");
XmlNodeList StoryItems = xmlDoc.SelectNodes("onl:stories/onl:story/onl:content", namespaceManager);
for (int i = 0; i <= StoryItems.Count - 1; i++)
{
if (StoryItems.Item(i).SelectSingleNode("onl:image", namespaceManager) != null)
{
Top10TopStories topStory = new Top10TopStories();
topStory.strStoryID = xmlDoc.SelectSingleNode("onl:stories/onl:story", namespaceManager).Attributes["key"].InnerText.Replace("{", "").Replace("}", "");
topStory.strNHeading = StoryItems.Item(i).SelectSingleNode("onl:heading", namespaceManager).InnerText;
topStory.strNThumb = "http://jpedit.sx.atl.publicus.com" + StoryItems.Item(i).SelectSingleNode("onl:image", namespaceManager).Attributes["viewuri"].InnerText;
newsDetails.Add(topStory);
}
}
My XML File:
<?xml version="1.0" encoding="UTF-8"?>
<onl:stories xmlns:onl="http://www.saxotech.com/online" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.saxotech.com/online stories.xsd" site="jp" siteuri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp" count="10"
totalcount="144" pagenumber="1" pagesize="10" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories">
<onl:story date="20121107" id="121109843" key="{13D80928-73F8-4209-B36C-F682D6F64B84}" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}" viewuri="http://JPedit.sx.atl.publicus.com/article/20121107/BOY/121109843">
<onl:metadata status="unpublished" priority="0">
<onl:modified by="colleenj" user="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/users/{97A9E7BD-6311-41EC-9FBA-B7D347E44A9C}" timestamp="2012-11-07T21:50:46Z" internaltimestamp="2012-11-07T22:17:49Z" />
<onl:created by="colleenj" user="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/users/{97A9E7BD-6311-41EC-9FBA-B7D347E44A9C}" timestamp="2012-11-07T21:50:46Z" />
<onl:published timestamp="2012-11-07T21:50:46Z" />
<onl:category id="BOY" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/categories/BOY"><![CDATA[Event - Business of the Year]]></onl:category>
</onl:metadata>
<onl:content>
<onl:heading><![CDATA[A Trbiute to Conrad M. Siegel]]></onl:heading>
<onl:summary><![CDATA[A brief tribute video created by FGV and the Central Penn Business Journal to recognize Conrad M. Siegel, founder, chairman and CEO of Conrad Siegel Actuaries upon his induction into the Central Penn Business Hall of Fame on November
1, 2012.
<a href="http://www.cpbjnow.com/assets/mov/JP127109117.WMV">Click here to watch the video.</a>]]></onl:summary>
<onl:image viewuri="/storyimage/jp/20121107/BOY/121109843/AR/0/0/AR-121109843.jpg" softcropimagesuri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/content/image/softcropimages">
<onl:heading><![CDATA[Conrad M. Siegel]]></onl:heading>
<onl:byline><![CDATA[Amy Spangler]]></onl:byline>
</onl:image>
</onl:content>
<onl:parents count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/parents" />
<onl:children count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/children" />
<onl:taxonomywords count="1" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/taxonomywords" />
<onl:geopoints count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/geopoints" />
<onl:extraimages count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/content/extraimages" />
<onl:mediafiles count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/content/mediafiles" />
<onl:staffmembers count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/staffmembers" />
<onl:comments count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/comments" />
</onl:story>
<onl:story date="20121107" id="121109844" key="{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}" viewuri="http://JPedit.sx.atl.publicus.com/article/20121107/SPORTS/121109844">
<onl:metadata status="published" priority="0">
<onl:modified by="amyg" user="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/users/{D448C507-2C34-4BC1-9D8D-34360D50DB55}" timestamp="2012-11-07T20:25:35Z" internaltimestamp="2012-11-07T20:27:10Z" />
<onl:created by="amyg" user="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/users/{D448C507-2C34-4BC1-9D8D-34360D50DB55}" timestamp="2012-11-07T20:25:35Z" />
<onl:published timestamp="2012-11-07T20:00:00Z" />
<onl:category id="SPORTS" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/categories/SPORTS"><![CDATA[Blog - Sports]]></onl:category>
</onl:metadata>
<onl:content>
<onl:heading><![CDATA[Concessions: Quite the moneymaker for stadiums]]></onl:heading>
<onl:summary><![CDATA[There’s a reason “Take Me Out To The Ballgame” includes a verse about peanuts and Cracker Jack. Even as far back as 1908, when the song was written, concessions were an important part of the fan experience –
and the team’s bottom line. ]]></onl:summary>
<onl:byline><![CDATA[Bill Sayer]]></onl:byline>
</onl:content>
<onl:parents count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/parents" />
<onl:children count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/children" />
<onl:taxonomywords count="1" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/taxonomywords" />
<onl:geopoints count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/geopoints" />
<onl:extraimages count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/content/extraimages" />
<onl:mediafiles count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/content/mediafiles" />
<onl:staffmembers count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/staffmembers" />
<onl:comments count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/comments" />
</onl:story>
</onl:stories>
Please remember to click "Mark as Answer" on the post that helps you. It can be beneficial to other community members reading the thread.
ashwanisaini
Member
731 Points
164 Posts
parsing xml nodes in .net using Xpath..............
Nov 23, 2012 05:37 AM|LINK
I was trying to filter MY XML data, but i am having problem to get distinct attributes from "onl:stories/onl:story". I want to get the "onl:stories/onl:story" attributes key value, The below code works but return the same value for each item
topStory.strStoryID = xmlDoc.SelectSingleNode("onl:stories/onl:story", namespaceManager).Attributes["key"].InnerText.Replace("{", "").Replace("}", "");
Please help.
Here is My C# Code
XmlDocument xmlDoc = new XmlDocument();
//xmlDoc.LoadXml(Return_XmLFeedByURL("http://jpedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories&categories=CPBJ01"));
xmlDoc.LoadXml(Return_XmLFeedByURL("http://jpedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories&categories=" + strCategory));
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(xmlDoc.NameTable);
namespaceManager.AddNamespace("onl", "http://www.saxotech.com/online");
XmlNodeList StoryItems = xmlDoc.SelectNodes("onl:stories/onl:story/onl:content", namespaceManager);
for (int i = 0; i <= StoryItems.Count - 1; i++)
{
if (StoryItems.Item(i).SelectSingleNode("onl:image", namespaceManager) != null)
{
Top10TopStories topStory = new Top10TopStories();
topStory.strStoryID = xmlDoc.SelectSingleNode("onl:stories/onl:story", namespaceManager).Attributes["key"].InnerText.Replace("{", "").Replace("}", "");
topStory.strNHeading = StoryItems.Item(i).SelectSingleNode("onl:heading", namespaceManager).InnerText;
topStory.strNThumb = "http://jpedit.sx.atl.publicus.com" + StoryItems.Item(i).SelectSingleNode("onl:image", namespaceManager).Attributes["viewuri"].InnerText;
newsDetails.Add(topStory);
}
}
My XML File:
<?xml version="1.0" encoding="UTF-8"?>
<onl:stories xmlns:onl="http://www.saxotech.com/online" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.saxotech.com/online stories.xsd" site="jp" siteuri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp" count="10" totalcount="144" pagenumber="1" pagesize="10" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories">
<onl:story date="20121107" id="121109843" key="{13D80928-73F8-4209-B36C-F682D6F64B84}" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}" viewuri="http://JPedit.sx.atl.publicus.com/article/20121107/BOY/121109843">
<onl:metadata status="unpublished" priority="0">
<onl:modified by="colleenj" user="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/users/{97A9E7BD-6311-41EC-9FBA-B7D347E44A9C}" timestamp="2012-11-07T21:50:46Z" internaltimestamp="2012-11-07T22:17:49Z" />
<onl:created by="colleenj" user="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/users/{97A9E7BD-6311-41EC-9FBA-B7D347E44A9C}" timestamp="2012-11-07T21:50:46Z" />
<onl:published timestamp="2012-11-07T21:50:46Z" />
<onl:category id="BOY" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/categories/BOY"><![CDATA[Event - Business of the Year]]></onl:category>
</onl:metadata>
<onl:content>
<onl:heading><![CDATA[A Trbiute to Conrad M. Siegel]]></onl:heading>
<onl:summary><![CDATA[A brief tribute video created by FGV and the Central Penn Business Journal to recognize Conrad M. Siegel, founder, chairman and CEO of Conrad Siegel Actuaries upon his induction into the Central Penn Business Hall of Fame on November 1, 2012.
<a href="http://www.cpbjnow.com/assets/mov/JP127109117.WMV">Click here to watch the video.</a>]]></onl:summary>
<onl:image viewuri="/storyimage/jp/20121107/BOY/121109843/AR/0/0/AR-121109843.jpg" softcropimagesuri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/content/image/softcropimages">
<onl:heading><![CDATA[Conrad M. Siegel]]></onl:heading>
<onl:byline><![CDATA[Amy Spangler]]></onl:byline>
</onl:image>
</onl:content>
<onl:parents count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/parents" />
<onl:children count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/children" />
<onl:taxonomywords count="1" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/taxonomywords" />
<onl:geopoints count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/geopoints" />
<onl:extraimages count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/content/extraimages" />
<onl:mediafiles count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/content/mediafiles" />
<onl:staffmembers count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/staffmembers" />
<onl:comments count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{13D80928-73F8-4209-B36C-F682D6F64B84}/comments" />
</onl:story>
<onl:story date="20121107" id="121109844" key="{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}" viewuri="http://JPedit.sx.atl.publicus.com/article/20121107/SPORTS/121109844">
<onl:metadata status="published" priority="0">
<onl:modified by="amyg" user="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/users/{D448C507-2C34-4BC1-9D8D-34360D50DB55}" timestamp="2012-11-07T20:25:35Z" internaltimestamp="2012-11-07T20:27:10Z" />
<onl:created by="amyg" user="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/users/{D448C507-2C34-4BC1-9D8D-34360D50DB55}" timestamp="2012-11-07T20:25:35Z" />
<onl:published timestamp="2012-11-07T20:00:00Z" />
<onl:category id="SPORTS" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/categories/SPORTS"><![CDATA[Blog - Sports]]></onl:category>
</onl:metadata>
<onl:content>
<onl:heading><![CDATA[Concessions: Quite the moneymaker for stadiums]]></onl:heading>
<onl:summary><![CDATA[There’s a reason “Take Me Out To The Ballgame” includes a verse about peanuts and Cracker Jack. Even as far back as 1908, when the song was written, concessions were an important part of the fan experience – and the team’s bottom line. ]]></onl:summary>
<onl:byline><![CDATA[Bill Sayer]]></onl:byline>
</onl:content>
<onl:parents count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/parents" />
<onl:children count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/children" />
<onl:taxonomywords count="1" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/taxonomywords" />
<onl:geopoints count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/geopoints" />
<onl:extraimages count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/content/extraimages" />
<onl:mediafiles count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/content/mediafiles" />
<onl:staffmembers count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/staffmembers" />
<onl:comments count="0" uri="http://JPedit.sx.atl.publicus.com/apps/ows.dll/sites/jp/stories/{AB1DACF8-C54D-42F4-BCB3-C820260D3CB9}/comments" />
</onl:story>
</onl:stories>
Decker Dong ...
All-Star
118619 Points
18779 Posts
Re: parsing xml nodes in .net using Xpath..............
Nov 24, 2012 12:23 AM|LINK
Hi,
What do you mean "distinct attributes"?And what's Top10TopStories?What actually do you wanna do?