XML reader attribute with asp.net - asp.net

I want to read an xml file. And to all its attribute I need.
High Time tag is repeated 36 times
<?xml version="1.0" encoding="utf-8"?>
<weatherdata>
<!-- ... -->
<forecast>
<tabular>
<time from="2016-09-28T15:30:00" to="2016-09-28T18:30:00" period="2">
<!-- Valid from 2016-09-28T15:30:00 to 2016-09-28T18:30:00 -->
<symbol number="1" numberEx="1" name="Clear sky" var="01d" />
<precipitation value="0" />
<!-- Valid at 2016-09-28T15:30:00 -->
<windDirection deg="225.9" code="SW" name="Southwest" />
<windSpeed mps="7.5" name="Moderate breeze" />
<temperature unit="celsius" value="24" />
<pressure unit="hPa" value="1007.5" />
</time>
<time from="2016-09-28T18:30:00" to="2016-09-29T00:30:00" period="3">
<!-- Valid from 2016-09-28T18:30:00 to 2016-09-29T00:30:00 -->
<symbol number="3" numberEx="3" name="Partly cloudy" var="mf/03n.89" />
<precipitation value="0" />
<!-- Valid at 2016-09-28T18:30:00 -->
<windDirection deg="219.1" code="SW" name="Southwest" />
<windSpeed mps="4.6" name="Gentle breeze" />
<temperature unit="celsius" value="19" />
<pressure unit="hPa" value="1008.5" />
</time>
etc.

Related

to hide custom workflow from another site alfresco share

I need to hide custom workflow list for folders/documents present in " MyFiles " and other sites areas.Doing that from "show-site-workflow-modules.xml " with this configuration(code below), hides workflows from "workflows that I have started" also,which is terribly wrong.
<module>
<id>General_Workflow</id>
<description>Applies config based on site id</description>
<evaluator type="site.module.evaluator">
<params>
<sites>.*</sites>
<sitePresets>.*</sitePresets>
<applyForNonSites>true</applyForNonSites>
</params>
</evaluator>
<configurations>
<config evaluator="string-compare" condition="Workflow" replace="true">
<!-- A list of workflow definitions that are NOT displayed in Share -->
<hidden-workflows>
<!-- Hide all Custom workflows -->
<workflow name="customactiviti$xxxx" />
</hidden-workflows>
<!-- A list of workflow tasks that are NOT displayed in Share -->
<hidden-tasks>
<task type="customwf:*" />
</hidden-tasks>
</config>
</configurations>
</module>
<module>
<id>xxx_Conditional_Workflow</id>
<description>Applies config based on site id</description>
<evaluator type="site.module.evaluator">
<params>
<sites>xxx-xxx-xxx</sites>
<applyForNonSites>false</applyForNonSites>
</params>
</evaluator>
<configurations>
<config evaluator="string-compare" condition="Workflow" replace="true">
<!-- A list of workflow definitions that are NOT displayed in Share -->
<hidden-workflows>
<!-- Hide all WCM related workflows -->
<workflow name="activiti$activitiAdhoc" />
<workflow name="activiti$activitiInvitationModerated" />
<workflow name="activiti$activitiInvitationNominated" />
<workflow name="activiti$activitiInvitationNominatedAddDirect" />
<workflow name="activiti$activitiParallelGroupReview" />
<workflow name="activiti$activitiParallelReview" />
<workflow name="activiti$activitiReview" />
<workflow name="activiti$activitiReviewPooled" />
<workflow name="activiti$publishWebContent" />
</hidden-workflows>
<!-- A list of workflow tasks that are NOT displayed in Share -->
<hidden-tasks>
<!-- Hide all WCM related tasks -->
<task type="wcmwf:*" />
</hidden-tasks>
</config>
</configurations>
</module>

Task edit document preview component Alfresco

First question:
I want to implement a preview of the document in the form of the task-edit of the workflows... How can I do this? I try to adapt the document-details.xml and document-details.ftl to workflow-details.xml and workflow-details.ftl but not works. I tried to copy the components that have web-preview of the document-details files to workflow-details. Any hint to make this?
I have this in workflow-details.ftl:
<#include "include/alfresco-template.ftl" />
<#templateHeader>
<#script type="text/javascript" src="${url.context}/res/modules/documentlibrary/doclib-actions.js" group="document-details"/>
<#link rel="stylesheet" type="text/css" href="${url.context}/res/components/document-details/document-details-panel.css" group="document-details"/>
<#link rel="stylesheet" type="text/css" href="${url.context}/res/components/workflow/task-edit-header.css" group="workflow-details"/>
<#templateHtmlEditorAssets />
</#>
<#templateBody>
<#markup id="alf-hd">
<div id="alf-hd">
<#region scope="global" id="share-header" chromeless="true"/>
<#region id="title" scope="template"/>
<#if page.url.args.nodeRef??>
<#region id="path" scope="template"/>
</#if>
</div>
</#>
<#markup id="bd">
<div id="bd">
<div class="share-form">
<#region id="data-header" scope="page" />
<div class="yui-gc">
<div class="yui-u first">
<#if (config.scoped['WorkflowDetails']['workflow-details'].getChildValue('display-web-preview') == "true")>
<#region id="web-preview" scope="template"/>
</#if>
</div>
</div>
<#region id="data-form" scope="page" />
<#region id="data-actions" scope="page" />
</div>
</div>
</#>
</#>
<#templateFooter>
<#markup id="alf-ft">
<div id="alf-ft">
<#region id="footer" scope="global"/>
<#region id="data-loader" scope="page" />
</div>
</#>
</#>
In workflow-details.xml I add this component:
<component>
<region-id>web-preview</region-id>
<sub-components>
<sub-component id="default">
<evaluations>
<evaluation>
<evaluators>
<evaluator type="config.component.evaluator">
<params>
<element>WorkflowDetails/workflow-details/display-web-preview</element>
</params>
</evaluator>
</evaluators>
<url>/components/preview/web-preview</url>
<properties>
<nodeRef>{nodeRef}</nodeRef>
<api>api</api>
<proxy>alfresco</proxy>
<dependencyGroup>workflow-details</dependencyGroup>
</properties>
</evaluation>
</evaluations>
</sub-component>
</sub-components>
</component>
This not shows the web-preview, only creates:
<div id="template_x002e_web-preview_x002e_workflow-details">
<div id="template_x002e_web-preview_x002e_workflow-details_x0023_default"> </div>
</div>
What's my error?
Second question:
In the preview of the Aikau page I get: Warning: unimplemented annotation type: Widget signature in the console of the firebug of the Mozilla Firefox and the document is displayed without the digital signatures... But, for example, if I upload a document with a digital signature, I can see the document with the signature in the page of document-details of the document. The preview of this page is different? How can I implement this preview?
The main problem you have here is that the you don't have any nodeRef request parameter when viewing a workflow task (this is mapped to the {nodeRef} token that is assigned to the <nodeRef> element in the web-preview component. As a result the web-preview WebScript will not have a node to render.
You are either going to need to make a customization such that the nodeRef of the attached file is included as a request parameter when viewing the workflow task or use your own WebScript (other than the web-preview WebScript) in order to access the nodeRef of the document to preview.
A couple of other things to consider here, is that it is entirely possible to have more than one document assigned to a workflow, so you'd need to handle that scenario (i.e. which document is previewed, or how to preview all documents).
I don't think that this is going to be a simple customization though.
It can be easier to just use the javascript previewer that is integrated in share (pdf.js). If you use directly the javascript library, it shouldn't be difficult to open a preview.
There are examples in the official site of the project: pdf.js
you can use the share webscript to initialise the javascript with the list of urls of the documents attached to the workflow. If the document attached is not a pdf, you will need to use its pdf rendition.
For future references. You can do it as follows (example):
Create Share extension and add the following container to the /src/main/amp/config/alfresco/templates/org/alfresco/workflow-details.ftl:
<div class="yui-gc">
<div class="yui-u first">
<#if (config.scoped['DocumentDetails']['document-details'].getChildValue('display-web-preview') == "true")>
<#region id="web-preview" scope="template"/>
</#if>
</div>
</div>
Also add the same #templateHeader as in the document-details.ftl. Your workflow-details.ftl will look like this:
<#include "include/alfresco-template.ftl" />
<#templateHeader>
<#script type="text/javascript" src="${url.context}/res/modules/documentlibrary/doclib-actions.js" group="document-details"/>
<#link rel="stylesheet" type="text/css" href="${url.context}/res/components/document-details/document-details-panel.css" group="document-details"/>
<#templateHtmlEditorAssets />
</#>
<#templateBody>
<#markup id="alf-hd">
<div id="alf-hd">
<#region scope="global" id="share-header" chromeless="true"/>
<#region id="title" scope="template"/>
<#if page.url.args.nodeRef??>
<#region id="path" scope="template"/>
</#if>
</div>
</#>
<#markup id="bd">
<div id="bd">
<div class="share-form">
<#region id="data-header" scope="page" />
<#region id="data-form" scope="page" />
<div class="yui-gc">
<div class="yui-u first">
<#if (config.scoped['DocumentDetails']['document-details'].getChildValue('display-web-preview') == "true")>
<#region id="web-preview" scope="template"/>
</#if>
</div>
</div>
<#region id="data-actions" scope="page" />
</div>
</div>
</#>
</#>
<#templateFooter>
<#markup id="alf-ft">
<div id="alf-ft">
<#region id="footer" scope="global"/>
<#region id="data-loader" scope="page" />
</div>
</#>
</#>
Add the WebPreview component to the \src\main\amp\config\alfresco\site-data\template-instances\workflow-details.xml:
<!-- WebPreview -->
<component>
<region-id>web-preview</region-id>
<sub-components>
<sub-component id="default">
<evaluations>
<evaluation>
<evaluators>
<evaluator type="config.component.evaluator">
<params>
<element>DocumentDetails/document-details/display-web-preview</element>
</params>
</evaluator>
</evaluators>
<url>/components/preview/web-preview</url>
<properties>
<nodeRef>{nodeRef}</nodeRef>
<api>api</api>
<proxy>alfresco</proxy>
<dependencyGroup>document-details</dependencyGroup>
</properties>
</evaluation>
</evaluations>
</sub-component>
</sub-components>
</component>
Your workflow-details.xml will look like this:
<?xml version='1.0' encoding='UTF-8'?>
<template-instance>
<template-type>org/alfresco/workflow-details</template-type>
<properties>
<pageFamily>documentlibrary</pageFamily>
</properties>
<components>
<!-- Site Navigation -->
<component>
<region-id>navigation</region-id>
<sub-components>
<sub-component id="default">
<evaluations>
<!-- if referred from my tasks page: Task toolbar -->
<evaluation id="tasks">
<evaluators>
<evaluator type="equals.component.evaluator">
<params>
<referrer>{referrer}</referrer>
<tasks>tasks</tasks>
</params>
</evaluator>
</evaluators>
<url>/components/workflow/task-toolbar</url>
</evaluation>
<!-- if referred from my workflows page: Workflows toolbar -->
<evaluation id="workflows">
<evaluators>
<evaluator type="equals.component.evaluator">
<params>
<referrer>{referrer}</referrer>
<workflows>workflows</workflows>
</params>
</evaluator>
</evaluators>
<url>/components/workflow/workflow-toolbar</url>
</evaluation>
<!-- if in site: Site navigation -->
<evaluation id="site">
<evaluators>
<evaluator type="site.component.evaluator"/>
</evaluators>
<url>/components/navigation/collaboration-navigation</url>
</evaluation>
</evaluations>
</sub-component>
</sub-components>
</component>
<!-- WebPreview -->
<component>
<region-id>web-preview</region-id>
<sub-components>
<sub-component id="default">
<evaluations>
<evaluation>
<evaluators>
<evaluator type="config.component.evaluator">
<params>
<element>DocumentDetails/document-details/display-web-preview</element>
</params>
</evaluator>
</evaluators>
<url>/components/preview/web-preview</url>
<properties>
<nodeRef>{nodeRef}</nodeRef>
<api>api</api>
<proxy>alfresco</proxy>
<dependencyGroup>document-details</dependencyGroup>
</properties>
</evaluation>
</evaluations>
</sub-component>
</sub-components>
</component>
<!-- Path -->
<component>
<region-id>path</region-id>
<sub-components>
<sub-component id="default">
<evaluations>
<!-- if in site: Site title -->
<evaluation id="site">
<evaluators>
<evaluator type="site.component.evaluator"/>
</evaluators>
<url>/components/document-details/path</url>
</evaluation>
<!-- otherwise: Repository title -->
<evaluation id="repo">
<url>/components/document-details/repo/path</url>
</evaluation>
</evaluations>
</sub-component>
</sub-components>
</component>
</components>
</template-instance>
If you want to place the component in an arbitrary region, you may need to use JavaScript, for example:
...
var container = YAHOO.util.Dom.get('user-list');
var web_preview = YAHOO.util.Dom.get('template_x002e_web-preview_x002e_workflow-details_x0023_default');
YAHOO.util.Dom.insertAfter(web_preview, container);
...
The container with ID==user-list I placed in the userdetails.ftl which added to the share-config-custom.xml as follows:
...
<field id="mswf:userDetails" set="userDetails" label="...">
<control template="/org/alfresco/components/form/controls/workflow/userdetails.ftl" />
</field>
...
The result may look as shown below.
Here is an easier solution that handles multiple documents and uses web-preview component:
In your share-config-custom.xml override packageItems field:
<field id="packageItems" set="items">
<control template="/com/yourdomain/components/form/controls/workflow/packageitems.ftl" />
</field>
Control template (/com/yourdomain/components/form/controls/workflow/packageitems.ftl):
<#include "/org/alfresco/components/form/controls/workflow/packageitems.ftl" />
<#assign el>${controlId}-wp</#assign>
<#assign dependencyGroup="web-preview">
<#include "/org/alfresco/components/preview/include/web-preview-css-dependencies.lib.ftl" />
<#include "/org/alfresco/components/preview/include/web-preview-js-dependencies.lib.ftl" />
<div class="yui-g" id="${el}"></div>
<script type="text/javascript">//<![CDATA[
(function(){
var nodeRefs = ("${field.value?html}" || "").split(',');
for (var ni = 0; ni < nodeRefs.length; ni++) {
Alfresco.util.loadWebscript({
url: Alfresco.constants.URL_SERVICECONTEXT + "components/preview/web-preview",
properties: { nodeRef: nodeRefs[ni], htmlid: "${el}-preview-" + ni},
target: "${el}"
});
}
})();
//]]></script>

Alfresco share advanced search

I have some problem. I am create custom model ed:edocumentswith one aspect ed:zagdep it has one property ed:documentRegnum.
I am customize Advanced Search Form and add RegNum field, but it does not search nothing with this field.
What it can be? Why search does not work?
My model code ed-model.xml (tomcat\shared\classes\alfresco\extension)
<?xml version="1.0" encoding="UTF-8"?>
<model name="ed:edocuments" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<!-- Imports are required to allow references to definitions in other models -->
<imports>
<!-- Import Alfresco Dictionary Definitions -->
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
<!-- Import Alfresco Content Domain Model Definitions -->
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
</imports>
<!-- Introduction of new namespaces defined by this model -->
<namespaces>
<namespace uri="http://www.alfresco.com/model/edocuments/1.0" prefix="ed"/>
</namespaces>
<aspects>
<!-- Definition of new Content Aspect: Electronic Document -->
<aspect name="ed:zagdep">
<title>Zag Dep</title>
<properties>
<property name="ed:documentRegnum">
<type>d:text</type>
</property>
</properties>
</aspect>
</aspects>
</model>
My model contex file ed-model-contex.xml (tomcat\shared\classes\alfresco\extension)
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<!-- Registration of new models -->
<bean id="extension.ed.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
<property name="models">
<list>
<value>alfresco/extension/ed-model.xml</value>
</list>
</property>
</bean>
</beans>
My share-config-custom.xml(tomcat\shared\classes\alfresco\web-extension)
<alfresco-config>
<!-- Document Library config section -->
<config evaluator="string-compare" condition="DocumentLibrary">
<aspects>
<!-- Aspects that a user can see -->
<visible>
<aspect name="cm:generalclassifiable" />
<aspect name="cm:complianceable" />
<aspect name="cm:dublincore" />
<aspect name="cm:effectivity" />
<aspect name="cm:summarizable" />
<aspect name="cm:versionable" />
<aspect name="cm:templatable" />
<aspect name="cm:emailed" />
<aspect name="emailserver:aliasable" />
<aspect name="cm:taggable" />
<aspect name="app:inlineeditable" />
<aspect name="kb:referencable" />
<aspect name="ed:zagdep" />
</visible>
<!-- Aspects that a user can add. Same as "visible" if left empty -->
<addable>
</addable>
<!-- Aspects that a user can remove. Same as "visible" if left empty -->
<removeable>
</removeable>
</aspects>
</config>
<!-- cm:content type (existing nodes) -->
<config evaluator="node-type" condition="cm:content">
<forms>
<!-- Default form configuration used on the document details and edit metadata pages -->
<form>
<field-visibility>
<show id="ed:documentRegnum" />
</field-visibility>
</form>
<!-- Document Library pop-up Edit Metadata form -->
<form id="doclib-simple-metadata">
<field-visibility>
<show id="ed:documentRegnum" />
</field-visibility>
<edit-form template="../documentlibrary/forms/doclib-simple-metadata.ftl" />
</form>
<!-- Document Library Inline Edit form -->
<form id="doclib-inline-edit">
<field-visibility>
<show id="ed:documentRegnum" />
</field-visibility>
</form>
</forms>
</config>
<!-- Advanced search -->
<config replace="true" evaluator="string-compare" condition="AdvancedSearch">
<advanced-search>
<!-- Forms for the advanced search type list -->
<forms>
<form labelId="search.form.label.cm_content" descriptionId="search.form.desc.cm_content">cm:content</form>
<form labelId="search.form.label.cm_folder" descriptionId="search.form.desc.cm_folder">cm:folder</form>
</forms>
</advanced-search>
</config>
<config evaluator="model-type" condition="cm:content">
<forms>
<!-- Search form -->
<form id="search">
<field-visibility>
<show id="cm:name" />
<show id="cm:title" force="true" />
<show id="cm:description" force="true" />
<!-- ed:edocuments -->
<show id="ed:documentRegnum" />
</field-visibility>
<appearance>
<!-- ed:edocuments -->
<field id="ed:documentRegnum" label-id="prop.ed_documentRegnum">
<control template="/org/alfresco/components/form/controls/textfield.ftl" />
</field>
</appearance>
</form>
</forms>
</config>
</alfresco-config>
You just have to add : force="true" on aspect based property.See below code.
<show id="ed:documentRegnum" force="true" />

BizTalk - mapping a source that has a Parent-Child relationship a flat destination

I have seen this question about a parent child relationship, but it is not exactly the same since I have nothing to tag with.
I have a source flat file that look like this
Location Route Prod Company Date Amount
XXX RT00008 UT COMPANY1 20110926 3
XXX RT00008 UT COMPANY1 20110927 1
XXX RT00008 UT COMPANY1 20110928 1
XXX RT00008 UT COMPANY1 20110929 1
XXX RT00008 UT COMPANY1 20110930 1
XXX RT00171 SPW COMPANY2 20110928 1
XXX RT00171 UT COMPANY2 20110926 1
XXX RT00171 UT COMPANY2 20110927 1
XXX RT00171 UT COMPANY2 20110928 1
Here is the killer, for each unique combination of Route, Prod, and Company I need one record with the days of week filled in. For instance the previous example should map into 3 separate rows in the output.
Loc, Route, Pr, Company, Sun, Mon, Tues, Wed, Thur, Fri, Sat
XXX, RT00008, UT, COMPANY1, 0, 3, 1, 1, 1, 1, 1
XXX, RT00171, SPW, COMPANY2, 0, 0, 0, 1, 0, 0, 0
XXX, RT00171, UT, COMPANY2, 0, 1, 1, 1, 0, 0, 0
Now my question is, is there a way to do this without XSLT? Can it be done by using functoid, in one or more series of maps? It seems like the table looping functoid is custom built for the opposite of this situation, can it be done in reverse? If it can only be done using XSLT I am still scratching my head on how to do it?
Thanks for any help!
I created two schema representations of your Flat files (not flat file schemas, but they will suffice for the illustration).
I started with a biztalk map thats would populate the first day with the appropriate value for a given combo of Company, Route and Prod. I went to xsl to allow it loop through a collection of identified combos to populate ALL days for the identified combo.
Its probably best that you load up the .btm supplied along with the schemas and xsl to see what I've done. I can explain anything thats unclear.
Its probably worth noting that you could tidy up the solution but I hope it gives you a pointer.
Two points to note: the "day" nodes are only created when a value exists for that day. You can change this in the xsl.
And, I used a valid date time to test (e.g. 26-09-2011) so you'll have to parse your date when determining what DayOfWeek your date is.
The first Schema:
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://BizTalk_Server_Project2.Schema1" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://BizTalk_Server_Project2.Schema1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Record">
<xs:complexType>
<xs:sequence>
<xs:element name="Location" type="xs:string" />
<xs:element name="Route" type="xs:string" />
<xs:element name="Prod" type="xs:string" />
<xs:element name="Company" type="xs:string" />
<xs:element name="Date" type="xs:string" />
<xs:element name="Amount" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
The second schema:
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://BizTalk_Server_Project2.Schema2" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://BizTalk_Server_Project2.Schema2" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Record">
<xs:complexType>
<xs:sequence>
<xs:element name="Loc" type="xs:string" />
<xs:element name="Route" type="xs:string" />
<xs:element name="Pr" type="xs:string" />
<xs:element name="Company" type="xs:string" />
<xs:element name="Sun" type="xs:string" />
<xs:element name="Mon" type="xs:string" />
<xs:element name="Tue" type="xs:string" />
<xs:element name="Wed" type="xs:string" />
<xs:element name="Thurs" type="xs:string" />
<xs:element name="Friday" type="xs:string" />
<xs:element name="Sat" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
The BizTalk Map:
<?xml version="1.0" encoding="utf-16"?>
<mapsource Name="BizTalk Map" Version="2" BizTalkServerMapperTool_Version="3.0" XRange="100" YRange="420" OmitXmlDeclaration="Yes" TreatElementsAsRecords="No" OptimizeValueMapping="Yes" GenerateDefaultFixedNodes="Yes" PreserveSequenceOrder="No" IgnoreNamespacesForLinks="Yes" method="xml" CopyPIs="No" xmlVersion="1.0">
<SrcTree RootNode_Name="Root">
<Reference Location=".\Schema1.xsd" />
</SrcTree>
<TrgTree RootNode_Name="Root">
<Reference Location=".\Schema2.xsd" />
</TrgTree>
<ScriptTypePrecedence>
<CSharp Enabled="Yes" />
<ExternalAssembly Enabled="Yes" />
<VbNet Enabled="Yes" />
<JScript Enabled="Yes" />
<XsltCallTemplate Enabled="Yes" />
<Xslt Enabled="Yes" />
</ScriptTypePrecedence>
<TreeValues>
<TestValues />
<ConstantValues />
</TreeValues>
<CustomXSLT XsltPath=".\Map1.xsl" ExtObjXmlPath=".\Map1_extxml.xml" />
<Pages>
<Page Name="Page 1">
<Links>
<Link LinkID="22" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Date']" LinkTo="107" />
<Link LinkID="19" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Company']" LinkTo="106" />
<Link LinkID="16" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Prod']" LinkTo="105" />
<Link LinkID="14" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Route']" LinkTo="104" />
<Link LinkID="20" LinkFrom="106" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Company']" />
<Link LinkID="15" LinkFrom="104" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Route']" />
<Link LinkID="11" LinkFrom="103" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Loc']" />
<Link LinkID="10" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Location']" LinkTo="103" />
<Link LinkID="18" LinkFrom="102" LinkTo="106" />
<Link LinkID="13" LinkFrom="102" LinkTo="105" />
<Link LinkID="12" LinkFrom="102" LinkTo="104" />
<Link LinkID="9" LinkFrom="102" LinkTo="103" />
<Link LinkID="1" LinkFrom="98" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']" />
<Link LinkID="8" LinkFrom="101" LinkTo="102" />
<Link LinkID="6" LinkFrom="99" LinkTo="101" />
<Link LinkID="21" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Company']" LinkTo="100" />
<Link LinkID="3" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Route']" LinkTo="100" />
<Link LinkID="4" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Prod']" LinkTo="100" />
<Link LinkID="5" LinkFrom="100" LinkTo="99" />
<Link LinkID="24" LinkFrom="107" LinkTo="109" />
<Link LinkID="31" LinkFrom="109" LinkTo="117" />
<Link LinkID="38" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="117" />
<Link LinkID="30" LinkFrom="108" LinkTo="116" />
<Link LinkID="23" LinkFrom="107" LinkTo="108" />
<Link LinkID="37" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="116" />
<Link LinkID="33" LinkFrom="110" LinkTo="119" />
<Link LinkID="32" LinkFrom="112" LinkTo="118" />
<Link LinkID="34" LinkFrom="113" LinkTo="120" />
<Link LinkID="35" LinkFrom="114" LinkTo="121" />
<Link LinkID="36" LinkFrom="115" LinkTo="122" />
<Link LinkID="26" LinkFrom="107" LinkTo="110" />
<Link LinkID="25" LinkFrom="107" LinkTo="112" />
<Link LinkID="27" LinkFrom="107" LinkTo="113" />
<Link LinkID="28" LinkFrom="107" LinkTo="114" />
<Link LinkID="29" LinkFrom="107" LinkTo="115" />
<Link LinkID="39" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="118" />
<Link LinkID="40" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="119" />
<Link LinkID="41" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="120" />
<Link LinkID="42" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="121" />
<Link LinkID="43" LinkFrom="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Amount']" LinkTo="122" />
<Link LinkID="17" LinkFrom="105" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Pr']" />
<Link LinkID="44" LinkFrom="116" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Sun']" />
<Link LinkID="45" LinkFrom="117" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Mon']" />
<Link LinkID="46" LinkFrom="118" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Tue']" />
<Link LinkID="47" LinkFrom="119" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Wed']" />
<Link LinkID="48" LinkFrom="120" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Thurs']" />
<Link LinkID="49" LinkFrom="121" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Friday']" />
<Link LinkID="50" LinkFrom="122" LinkTo="/*[local-name()='<Schema>']/*[local-name()='Root']/*[local-name()='Record']/*[local-name()='Sat']" />
</Links>
<Functoids>
<Functoid FunctoidID="107" Functoid-FID="260" X-Cell="52" Y-Cell="194">
<Input-Parameters>
<Parameter Type="link" Value="22" linkIndex="0" Guid="7470c0bc-c75c-4ab5-99f2-250d7fe1e389" />
</Input-Parameters>
<ScripterCode>
<Script Language="CSharp">
<![CDATA[///*Uncomment the following code for a sample Inline C# function
//that concatenates two inputs. Change the number of parameters of
//this function to be equal to the number of inputs connected to this functoid.*/
public string dow(string myDate)
{
return DateTime.Parse(myDate).DayOfWeek.ToString();
}
]]>
</Script>
</ScripterCode>
</Functoid>
<Functoid FunctoidID="106" Functoid-FID="375" X-Cell="56" Y-Cell="193">
<Input-Parameters>
<Parameter Type="link" Value="18" linkIndex="0" Guid="87396644-e663-4615-9e42-67060259fb1a" />
<Parameter Type="link" Value="19" linkIndex="1" Guid="cc39c66f-59fd-427d-aefc-5c1195e6a72f" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="105" Functoid-FID="375" X-Cell="56" Y-Cell="191">
<Input-Parameters>
<Parameter Type="link" Value="13" linkIndex="0" Guid="691fde94-db0b-4f53-b2ee-ff8f8f980027" />
<Parameter Type="link" Value="16" linkIndex="1" Guid="04844567-8d00-44cd-9b90-89e5009c4269" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="104" Functoid-FID="375" X-Cell="56" Y-Cell="189">
<Input-Parameters>
<Parameter Type="link" Value="12" linkIndex="0" Guid="16e52083-f9c4-4563-980c-146f4621dab6" />
<Parameter Type="link" Value="14" linkIndex="1" Guid="58d9d487-43be-4e7a-a0b0-efbbae08d004" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="103" Functoid-FID="375" X-Cell="56" Y-Cell="187">
<Input-Parameters>
<Parameter Type="link" Value="9" linkIndex="0" Guid="230f2ff4-b9aa-4903-893b-90bd3fe49540" />
<Parameter Type="link" Value="10" linkIndex="1" Guid="5cc1c29a-7398-4005-ace7-4cbc4c176960" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="102" Functoid-FID="705" X-Cell="54" Y-Cell="186">
<Input-Parameters>
<Parameter Type="link" Value="8" linkIndex="0" Guid="b3777b48-0d39-499c-96c9-40ffdd0c8737" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="98" Functoid-FID="260" X-Cell="52" Y-Cell="182">
<Input-Parameters />
<ScripterCode>
<Script Language="CSharp">
<![CDATA[// declare global variables for Voucher number assignment
System.Collections.Generic.List<string> keyList =
new System.Collections.Generic.List<string>();
public void init(){}
]]>
</Script>
</ScripterCode>
</Functoid>
<Functoid FunctoidID="101" Functoid-FID="315" X-Cell="54" Y-Cell="184">
<Input-Parameters>
<Parameter Type="link" Value="6" linkIndex="0" Guid="4a5c621f-9f4f-4b1f-a81b-6dce03aa402a" />
<Parameter Type="constant" Value="true" linkIndex="1" Guid="5aafc712-0e6c-44be-baf8-c3a7d8806eb5" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="99" Functoid-FID="260" X-Cell="52" Y-Cell="184">
<Input-Parameters>
<Parameter Type="link" Value="5" linkIndex="0" Guid="bb64de45-0250-4d51-8ee3-4759d7812160" />
</Input-Parameters>
<ScripterCode>
<Script Language="CSharp">
<![CDATA[// Add invoice number to list if it doesn't already exist.
// increment voucher number if new invoice
public Boolean AddKeyToList(string key)
{
// if the Invoice number is not already in the List
if (!keyList.Contains(key))
{
// Add to list
keyList.Add(key);
return true;
}
return false;
}]]>
</Script>
</ScripterCode>
</Functoid>
<Functoid FunctoidID="100" Functoid-FID="107" X-Cell="44" Y-Cell="175">
<Input-Parameters>
<Parameter Type="link" Value="21" linkIndex="0" Guid="f630c6c2-b5c2-4c77-bf53-d25fdfb06b78" />
<Parameter Type="link" Value="3" linkIndex="1" Guid="f24d57bc-22d9-4390-bdf1-52ca16f9b45b" />
<Parameter Type="link" Value="4" linkIndex="2" Guid="87ee7e4f-374c-4343-aa68-0a5bf6fffac7" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="117" Functoid-FID="375" X-Cell="56" Y-Cell="195">
<Input-Parameters>
<Parameter Type="link" Value="31" linkIndex="0" Guid="4e5e0ad8-543e-4a41-b702-74d2d8356030" />
<Parameter Type="link" Value="38" linkIndex="1" Guid="c94e83a7-1220-4797-ac03-751e089e9a07" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="109" Functoid-FID="315" X-Cell="54" Y-Cell="195">
<Input-Parameters>
<Parameter Type="link" Value="24" linkIndex="0" Guid="c6998772-def3-4a8a-ae7d-0cdb947f95a4" />
<Parameter Type="constant" Value="Monday" linkIndex="1" Guid="64603dba-6df1-4b59-8968-62949ccc6759" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="108" Functoid-FID="315" X-Cell="54" Y-Cell="194">
<Input-Parameters>
<Parameter Type="link" Value="23" linkIndex="0" Guid="d44d97ba-b3d3-48cd-a3c9-7ce4726d35df" />
<Parameter Type="constant" Value="Sunday" linkIndex="1" Guid="75cf8619-0493-4aac-9f76-1a020d7fac0f" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="116" Functoid-FID="375" X-Cell="56" Y-Cell="194">
<Input-Parameters>
<Parameter Type="link" Value="30" linkIndex="0" Guid="c37bfe5c-9a5a-4b23-b300-16c942ba785b" />
<Parameter Type="link" Value="37" linkIndex="1" Guid="b02aab3d-6437-401c-9b06-bdf7c7d9c832" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="110" Functoid-FID="315" X-Cell="54" Y-Cell="197">
<Input-Parameters>
<Parameter Type="link" Value="26" linkIndex="0" Guid="1cd88b45-1667-416e-aeef-78cc599f3cc7" />
<Parameter Type="constant" Value="Wednesday" linkIndex="1" Guid="773c8e04-45a2-4d1e-983f-0b53745c038f" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="112" Functoid-FID="315" X-Cell="54" Y-Cell="196">
<Input-Parameters>
<Parameter Type="link" Value="25" linkIndex="0" Guid="599dfe5a-202b-49ee-a439-1276296501bd" />
<Parameter Type="constant" Value="Tuesday" linkIndex="1" Guid="bd4a7be3-b886-4cad-ab71-077b9cb507e0" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="113" Functoid-FID="315" X-Cell="54" Y-Cell="198">
<Input-Parameters>
<Parameter Type="link" Value="27" linkIndex="0" Guid="61d375df-85ad-49ef-8161-5c7908e7a1f9" />
<Parameter Type="constant" Value="Thursday" linkIndex="1" Guid="efb2d4af-52e1-41c3-8886-e8acbcf6f788" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="114" Functoid-FID="315" X-Cell="54" Y-Cell="199">
<Input-Parameters>
<Parameter Type="link" Value="28" linkIndex="0" Guid="84dc8167-ef26-41e2-8cbc-92bc09d9b513" />
<Parameter Type="constant" Value="Friday" linkIndex="1" Guid="bdea9f04-4e4d-458a-bc6c-5a7d063a9128" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="115" Functoid-FID="315" X-Cell="54" Y-Cell="200">
<Input-Parameters>
<Parameter Type="link" Value="29" linkIndex="0" Guid="ad77c87e-b292-4b10-9932-7fc9f5981869" />
<Parameter Type="constant" Value="Saturday" linkIndex="1" Guid="d811f065-8eed-4445-9356-fe5327b2c634" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="118" Functoid-FID="375" X-Cell="56" Y-Cell="196">
<Input-Parameters>
<Parameter Type="link" Value="32" linkIndex="0" Guid="32cd8143-b582-4d49-a048-84e54cd42bea" />
<Parameter Type="link" Value="39" linkIndex="1" Guid="95fffee4-6451-442d-9a60-19a297388aa5" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="119" Functoid-FID="375" X-Cell="56" Y-Cell="197">
<Input-Parameters>
<Parameter Type="link" Value="33" linkIndex="0" Guid="d222802d-a84e-4cdd-8920-48623705506d" />
<Parameter Type="link" Value="40" linkIndex="1" Guid="9be3005a-d0e2-454d-b970-a350becadf5d" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="120" Functoid-FID="375" X-Cell="56" Y-Cell="198">
<Input-Parameters>
<Parameter Type="link" Value="34" linkIndex="0" Guid="bfe3b4b6-c52a-4762-9c2c-b868d7f203fd" />
<Parameter Type="link" Value="41" linkIndex="1" Guid="f7eed5ef-5156-4d4b-8cc9-42a5c5773ec2" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="121" Functoid-FID="375" X-Cell="56" Y-Cell="199">
<Input-Parameters>
<Parameter Type="link" Value="35" linkIndex="0" Guid="d2765ea5-a23c-43f5-834e-ec5e610f1114" />
<Parameter Type="link" Value="42" linkIndex="1" Guid="ccf811b9-31bc-4cb2-9d00-fa784c357575" />
</Input-Parameters>
</Functoid>
<Functoid FunctoidID="122" Functoid-FID="375" X-Cell="56" Y-Cell="200">
<Input-Parameters>
<Parameter Type="link" Value="36" linkIndex="0" Guid="63f4d89b-0487-434a-97a7-137b70376867" />
<Parameter Type="link" Value="43" linkIndex="1" Guid="2f302981-121d-4825-8251-6b9bd0123278" />
</Input-Parameters>
</Functoid>
</Functoids>
</Page>
</Pages>
</mapsource>
in the generated xsl, replace the <Root> element with:
<ns0:Root>
<xsl:for-each select="Record">
<xsl:variable name="var:v1" select="userCSharp:StringConcat(string(Company/text()) , string(Route/text()) , string(Prod/text()))" />
<xsl:variable name="var:v6" select="string(Company/text())" />
<xsl:variable name="var:v7" select="string(Route/text())" />
<xsl:variable name="var:v8" select="string(Prod/text())" />
<xsl:variable name="var:v9" select="userCSharp:StringConcat($var:v6 , $var:v7 , $var:v8)" />
<xsl:variable name="var:v25" select="string(Date/text())" />
<!-- Only create a new record node in the destibation if the Keys are different! -->
<xsl:variable name="varCurrentCompany" select="string(Company/text())" />
<xsl:variable name="varPrevCompany" select="string(preceding-sibling::Record[1]/Company/text())" />
<xsl:variable name="varCurrentRoute" select="string(Route/text())" />
<xsl:variable name="varPrevRoute" select="string(preceding-sibling::Record[1]/Route/text())" />
<xsl:variable name="varCurrentProd" select="string(Prod/text())" />
<xsl:variable name="varPrevProd" select="string(preceding-sibling::Record[1]/Prod/text())" />
<!-- do this by checking if the current record is different to the previous record -->
<xsl:if test="($varCurrentCompany!=$varPrevCompany) or ($varCurrentRoute!=$varPrevRoute) or ($varCurrentProd!=$varPrevProd)">
<Record>
<xsl:variable name="var:v2" select="userCSharp:AddKeyToList(string($var:v1))" />
<xsl:variable name="var:v3" select="userCSharp:LogicalEq(string($var:v2) , "true")" />
<xsl:variable name="var:v4" select="userCSharp:LogicalNot(string($var:v3))" />
<xsl:if test="string($var:v4)='true'">
<xsl:variable name="var:v5" select="Location/text()" />
<Loc>
<xsl:value-of select="$var:v5" />
</Loc>
</xsl:if>
<xsl:variable name="var:v10" select="userCSharp:AddKeyToList(string($var:v9))" />
<xsl:variable name="var:v11" select="userCSharp:LogicalEq(string($var:v10) , "true")" />
<xsl:variable name="var:v12" select="userCSharp:LogicalNot(string($var:v11))" />
<xsl:if test="string($var:v12)='true'">
<xsl:variable name="var:v13" select="Route/text()" />
<Route>
<xsl:value-of select="$var:v13" />
</Route>
</xsl:if>
<xsl:variable name="var:v14" select="userCSharp:AddKeyToList(string($var:v9))" />
<xsl:variable name="var:v15" select="userCSharp:LogicalEq(string($var:v14) , "true")" />
<xsl:variable name="var:v16" select="userCSharp:LogicalNot(string($var:v15))" />
<xsl:if test="string($var:v16)='true'">
<xsl:variable name="var:v17" select="Prod/text()" />
<Pr>
<xsl:value-of select="$var:v17" />
</Pr>
</xsl:if>
<xsl:variable name="var:v18" select="userCSharp:AddKeyToList(string($var:v9))" />
<xsl:variable name="var:v19" select="userCSharp:LogicalEq(string($var:v18) , "true")" />
<xsl:variable name="var:v20" select="userCSharp:LogicalNot(string($var:v19))" />
<xsl:if test="string($var:v20)='true'">
<xsl:variable name="var:v21" select="Company/text()" />
<Company>
<xsl:value-of select="$var:v21" />
</Company>
</xsl:if>
</Record>
</xsl:if>
<xsl:variable name="var:v22" select="userCSharp:dow(string(Date/text()))" />
<xsl:variable name="var:v23" select="userCSharp:LogicalEq(string($var:v22) , "Sunday")" />
<xsl:if test="string($var:v23)='true'">
<xsl:variable name="var:v24" select="Amount/text()" />
<Sun>
<xsl:value-of select="$var:v24" />
</Sun>
</xsl:if>
<xsl:variable name="var:v26" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v27" select="userCSharp:LogicalEq(string($var:v26) , "Monday")" />
<xsl:if test="string($var:v27)='true'">
<xsl:variable name="var:v28" select="Amount/text()" />
<Mon>
<xsl:value-of select="$var:v28" />
</Mon>
</xsl:if>
<xsl:variable name="var:v29" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v30" select="userCSharp:LogicalEq(string($var:v29) , "Tuesday")" />
<xsl:if test="string($var:v30)='true'">
<xsl:variable name="var:v31" select="Amount/text()" />
<Tue>
<xsl:value-of select="$var:v31" />
</Tue>
</xsl:if>
<xsl:variable name="var:v32" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v33" select="userCSharp:LogicalEq(string($var:v32) , "Wednesday")" />
<xsl:if test="string($var:v33)='true'">
<xsl:variable name="var:v34" select="Amount/text()" />
<Wed>
<xsl:value-of select="$var:v34" />
</Wed>
</xsl:if>
<xsl:variable name="var:v35" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v36" select="userCSharp:LogicalEq(string($var:v35) , "Thursday")" />
<xsl:if test="string($var:v36)='true'">
<xsl:variable name="var:v37" select="Amount/text()" />
<Thurs>
<xsl:value-of select="$var:v37" />
</Thurs>
</xsl:if>
<xsl:variable name="var:v38" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v39" select="userCSharp:LogicalEq(string($var:v38) , "Friday")" />
<xsl:if test="string($var:v39)='true'">
<xsl:variable name="var:v40" select="Amount/text()" />
<Friday>
<xsl:value-of select="$var:v40" />
</Friday>
</xsl:if>
<xsl:variable name="var:v41" select="userCSharp:dow($var:v25)" />
<xsl:variable name="var:v42" select="userCSharp:LogicalEq(string($var:v41) , "Saturday")" />
<xsl:if test="string($var:v42)='true'">
<xsl:variable name="var:v43" select="Amount/text()" />
<Sat>
<xsl:value-of select="$var:v43" />
</Sat>
</xsl:if>
</xsl:for-each>
<xsl:variable name="var:v44" select="userCSharp:init()" />
<xsl:value-of select="$var:v44" />
</ns0:Root>

RSS Feed Trouble w/ Linq

Trying to read an RSS and select information using Linq but can't seem to get it working.
Here is my code:
XDocument feedXML = XDocument.Load(
"http://eventful.com/atom/performers/bliminal-/P0-001-000192452-0");
var feeds = from feed in feedXML.Descendants("entry")
select new
{
Title = feed.Element("title").Value,
Link = feed.Element("link").Value,
Description = feed.Element("content").Value
};
And here is the format of my RSS:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US" xmlns:g="http://base.google.com/ns/1.0" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" xmlns:media="http://search.yahoo.com/mrss/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
<id>http://eventful.com/atom/performers/bliminal-/P0-001-000192452-0</id>
<link href="http://eventful.com/atom/performers/bliminal-/P0-001-000192452-0" type="application/atom+xml" rel="self" />
<link href="http://eventful.com/performers/bliminal-/P0-001-000192452-0" type="text/html" rel="alternate" />
<title>B-Liminal Tour Dates in 2009, B-Liminal Concert Schedule - Eventful</title>
<subtitle>Up-to-date event feeds from eventful.com, the world's leading event website.</subtitle>
<rights type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
Copyright © 2006
Eventful, Inc. All rights reserved. Use subject to terms of use:
http://eventful.com/terms
</div>
</rights>
<generator version="1.0">EVDB::Atom</generator>
<opensearch:totalResults></opensearch:totalResults>
<opensearch:startIndex>1</opensearch:startIndex>
<updated>2009-09-13T11:48:52+00:00</updated>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" xmlns:media="http://search.yahoo.com/mrss/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
<id>http://eventful.com/jupiter/events/bliminal-free-fan-appreciation-show-/E0-001-024704319-1</id>
<published>2009-09-13T15:09:00+00:00</published>
<updated>2009-09-13T15:48:12+00:00</updated>
<link href="http://eventful.com/jupiter/events/bliminal-free-fan-appreciation-show-/E0-001-024704319-1" type="text/html" rel="alternate" />
<gd:eventStatus value="http://schemas.google.com/g/2005#event.confirmed" />
<gd:visibility value="http://schemas.google.com/g/2005#event.public" />
<gd:transparency value="http://schemas.google.com/g/2005#event.transparent" />
<title>B-Liminal FREE fan appreciation show!</title>
<gd:when startTime="2009-09-19T02:00:00+00:00" endTime="2009-09-19T02:00:00+00:00" />
<georss:where>
<gml:Point>
<gml:pos>26.9342076 -80.0922588</gml:pos>
</gml:Point>
</georss:where>
<gd:where rel="http://schemas.google.com/g/2005#event" valueString="Corners near 71 East Indiantown Road , Jupiter, Florida, 33458, United States">
<gd:entryLink>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" xmlns:media="http://search.yahoo.com/mrss/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
<id>http://eventful.com/jupiter/venues/corners-/V0-001-001473018-9</id>
<link href="http://eventful.com/jupiter/venues/corners-/V0-001-001473018-9" type="text/html" rel="alternate" />
<title>Corners</title>
<georss:where>
<gml:Point>
<gml:pos>26.9342076 -80.0922588</gml:pos>
</gml:Point>
</georss:where>
<gd:contactSection label="Corners">
<gd:postalAddress>
71 East Indiantown Road
Jupiter, Florida 33458, United States
</gd:postalAddress>
<gd:geoPt lat="26.9342076" lon="-80.0922588" />
</gd:contactSection>
<content type="html">
<div class='vcard'>
<a class='fn org url uid' href='http://eventful.com/venues/V0-001-001473018-9'>Corners</a>
<div class='adr'>
<span class='street-address'>71 East Indiantown Road</span>, <span class='locality'>Jupiter</span>, <span class='region'>Florida</span> <span class='postal-code'>33458</span> <span class='country-name'>United States</span></div>
</div>
</content>
<media:text type="html">
<div class='vcard'>
<a class='fn org url uid' href='http://eventful.com/venues/V0-001-001473018-9'>Corners</a>
<div class='adr'>
<span class='street-address'>71 East Indiantown Road</span>, <span class='locality'>Jupiter</span>, <span class='region'>Florida</span> <span class='postal-code'>33458</span> <span class='country-name'>United States</span></div>
</div>
</media:text>
<category scheme="http://eventful.com/venues/tags/" term="americantowns" label="American Towns" />
<category scheme="http://eventful.com/venues/tags/" term="americantownscom" label="americantowns.com" />
<category scheme="http://eventful.com/venues/tags/" term="artistdatacom" label="artistdata.com" />
<category scheme="http://eventful.com/venues/tags/" term="barnightclub" label="BarNight Club" />
<category scheme="http://eventful.com/venues/tags/" term="community" label="community" />
<category scheme="http://eventful.com/venues/tags/" term="local" label="local" />
<category scheme="http://eventful.com/venues/tags/" term="townsquare" label="town square" />
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/g/2005#contact" />
<author>
<name>evdb</name>
<uri>http://eventful.com/users/evdb</uri>
</author>
</entry>
</gd:entryLink>
</gd:where>
The problem is that the entry elements are in an XML namespace (the xmlns attribute in each entry).
You need to do this:
XNamespace atom = "http://www.w3.org/2005/Atom";
var feeds = from feed in feedXML.Descendants(atom + "entry")
select new {
Title = feed.Element(atom + "title").Value,
Link = feed.Element(atom + "link").Value,
Description = feed.Element(atom + "content").Value
};
This code uses an implicit cast to create an XNamespace object, then uses XNamespace's overloaded + operator to create an XName. For more information, see here.

Resources