I’m using the attached c# code to parse the attached xml file. The problem is that within each organization tag there are multiple organizationName tags. This is because organizations change their names over time. The code is only getting the most recent whereas I would like all the history.
Ideally, I’d also like to be able to filter on specific elements and/or attributes. However this is lower priority as I can just iterate through the file created by the code.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq ;
using System.IO;
namespace ParseXML
{
public partial class Form1 : Form
{
string origId = "4295856130";
string typeName = "LNG";
string effectiveTo = "2005-08-18T04:00:00";
string[] AryContributors = new string[100];
long contributorCt = 0;
string ContributorFile = "C:\\OAOrganization\\OrgPermIDs.txt";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string[] AryContributors = File.ReadAllLines(ContributorFile);
try
{
using (StreamWriter sw = new StreamWriter("C:\\OAOrganization\\OrganizationNameParsed.txt"))
{
sw.WriteLine("OrganizationID|entityCreatedDate|entityModifiedDate|OrganizationName|OrganizationName_effectiveFrom|OrganizationName_effectiveTo|OrganizationName_organizationNameTypeCode|organizationName_LanguageID|OrganizationName_organizationNameLocalNormalized");
string csv = (from el in SimpleStreamAxis(@"C:\OAOrganization\File2.txt", "Organization")
let ns = String.Format("{{{0}}}", el.Name.NamespaceName)
select String.Format("{0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}|{9}",
(string)el.Element(ns + "OrganizationId"),
(string)el.Attribute ( "entityCreatedDate"),
(string)el.Attribute("entityModifiedDate"),
(string)el.Element(ns + "OrganizationName"),
(string)el.Element(ns + "OrganizationName").Attribute("effectiveFrom"),
(string)el.Element(ns + "OrganizationName").Attribute("effectiveTo"),
(string)el.Element(ns + "OrganizationName").Attribute("organizationNameTypeCode"),
(string)el.Element(ns + "OrganizationName").Attribute("languageId"),
(string)el.Element(ns + "OrganizationName").Attribute("organizationNameLocalNormalized"),
Environment.NewLine
)
)
.Aggregate(new StringBuilder(), (sb, s) => sb.Append(s), sb => sb.ToString()
);
sw.WriteLine(csv);
}
}
catch (Exception ex)
{
lblErrs.Text = ex.Message;
}
Environment.Exit(0);
}
private IEnumerable<XElement> SimpleStreamAxis(
string filename, string matchName)
{
using (XmlTextReader reader = new XmlTextReader(filename))
{
reader.MoveToContent();
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
if (reader.LocalName == matchName)
{
XElement el = XElement.ReadFrom(reader)
as XElement;
if (el != null)
yield return el;
}
break;
}
}
reader.Close();
}
}
}
}
='1.0'='utf-8'<env:ContentEnvelope majVers='3' minVers='2.3' pubStyle='Incremental' xmlns:env='http://data.schemas.tfn.thomson.com/Envelope/2008-05-01/' xmlns:cmn='http://data.schemas.financial.thomsonreuters.com/Common/2009-09-01/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://oa.schemas.tfn.thomson.com/Organization/2010-05-01/' xsi:schemaLocation='http://oa.schemas.tfn.thomson.com/Organization/2010-05-01/ OrganizationMaster.xsd'><env:Header><env:Info><env:Id>urn:uuid:843a1d51-445a-403e-b062-88430a6aff26</env:Id><env:TimeStamp>2015-01-19T13:54:23</env:TimeStamp></env:Info></env:Header><env:Body majVers='3' minVers='3.0' contentSet='OA'>
<env:ContentItem action="Overwrite"><env:Data xsi:type="OrganizationDataItem"><Organization entityCreatedDate="2009-07-22T00:48:57" entityModifiedDate="2015-01-19T05:27:10" isOrganizationVerified="true" isOrganizationManaged="true" isOrganizationFinancialLocalBranch="false" isOrganizationFinancialForeignBranch="false" isOrganizationOtherBranchandDivision="false" entityLastReviewedDate="2014-05-01T04:00:00" organizationTier="1"><OrganizationId>4295904866</OrganizationId><AdminStatus effectiveFrom="2009-07-22T00:48:57">Published</AdminStatus><OrganizationName effectiveFrom="1988-01-01T05:00:00" effectiveTo="2014-04-25T04:00:00" organizationNameTypeCode="FKA" languageId="505062" organizationNameLocalNormalized="S Y Bancorp Inc" sourceType="22" sourceLink="http://www.sec.gov/Archives/edgar/data/835324/000115752314001592/a50851040.htm" sourceUpdateDate="2014-05-01T09:07:06">S. Y. BANCORP, INC.</OrganizationName><OrganizationName effectiveFrom="2014-04-25T04:00:00" organizationNameTypeCode="LNG" languageId="505062" organizationNameLocalNormalized="Stock Yards Bancorp Inc" sourceType="4" sourceLink="https://app.sos.ky.gov/ftshow/(S(fuibso3ik0fpgwtjm4azfzf4))/default.aspx?path=ftsearch&id=0238669&ct=09&cs=99998" sourceUpdateDate="2014-05-01T09:01:56">STOCK YARDS BANCORP, INC.</OrganizationName><OrganizationName effectiveFrom="2014-04-25T04:00:00" organizationNameTypeCode="SHT" languageId="505062">Stock Yards</OrganizationName><OrganizationAddress addressTypeCode="LREG" languageId="505062" sourceType="4" sourceLink="https://app.sos.ky.gov/ftshow/(S(fuibso3ik0fpgwtjm4azfzf4))/default.aspx?path=ftsearch&id=0238669&ct=09&cs=99998" sourceUpdateDate="2014-05-01T09:01:56"><OrganizationAddressLine1>SUITE 1800</OrganizationAddressLine1><OrganizationAddressLine2>400 WEST MARKET ST.</OrganizationAddressLine2><OrganizationAddressLine3 naCode="NA02" /><OrganizationAddressCityCode>24194</OrganizationAddressCityCode><OrganizationAddressCity>LOUISVILLE</OrganizationAddressCity><OrganizationAddressStateProvince>KENTUCKY</OrganizationAddressStateProvince><OrganizationAddressStateProvinceCode>2032</OrganizationAddressStateProvinceCode><OrganizationAddressStateProvinceOfficialCode>KY</OrganizationAddressStateProvinceOfficialCode><OrganizationAddressPostalCode>40202-3352</OrganizationAddressPostalCode><OrganizationAddressCountryCode>US</OrganizationAddressCountryCode></OrganizationAddress><OrganizationAddress addressTypeCode="HEA" languageId="505062" sourceType="22" sourceLink="http://www.sec.gov/Archives/edgar/data/835324/000110465914035516/0001104659-14-035516.txt" sourceUpdateDate="2014-05-07T13:46:00"><OrganizationAddressLine1 naCode="NA02" /><OrganizationAddressLine2>1040 E MAIN ST</OrganizationAddressLine2><OrganizationAddressLine3 naCode="NA02" /><OrganizationAddressCityCode>24194</OrganizationAddressCityCode><OrganizationAddressCity>LOUISVILLE</OrganizationAddressCity><OrganizationAddressStateProvince>KENTUCKY</OrganizationAddressStateProvince><OrganizationAddressStateProvinceCode>2032</OrganizationAddressStateProvinceCode><OrganizationAddressStateProvinceOfficialCode>KY</OrganizationAddressStateProvinceOfficialCode><OrganizationAddressPostalCode>40206</OrganizationAddressPostalCode><OrganizationAddressCountryCode>US</OrganizationAddressCountryCode></OrganizationAddress><OrganizationPhone sourceType="22" sourceLink="http://www.sec.gov/Archives/edgar/data/835324/000110465914035516/0001104659-14-035516.txt" sourceUpdateDate="2014-05-07T13:46:00" organizationPhoneTypeCode="ORG_HQ_ADD_PHONE">15025822571</OrganizationPhone><OrganizationPhone organizationPhoneTypeCode="ORG_HQ_ADD_FAX" naCode="NA02" /><OrganizationPhone organizationPhoneTypeCode="ORG_REG_ADD_PHONE" naCode="NA02" /><OrganizationPhone organizationPhoneTypeCode="ORG_REG_ADD_FAX" naCode="NA02" /><OrganizationWebsite sourceType="15" sourceLink="http://www.snl.com/irweblinkx/corporateprofile.aspx?iid=100548" sourceUpdateDate="2014-03-10T19:50:53">http://www.snl.com/irweblinkx/corporateprofile.aspx?iid=100548</OrganizationWebsite><IsPublicFlag>true</IsPublicFlag><OrganizationFoundedYear sourceType="4" sourceLink="https://app.sos.ky.gov/ftshow/(S(fuibso3ik0fpgwtjm4azfzf4))/default.aspx?path=ftsearch&id=0238669&ct=09&cs=99998" sourceUpdateDate="2014-05-01T09:01:56">1988</OrganizationFoundedYear><OrganizationFoundedMonth sourceType="4" sourceLink="https://app.sos.ky.gov/ftshow/(S(fuibso3ik0fpgwtjm4azfzf4))/default.aspx?path=ftsearch&id=0238669&ct=09&cs=99998" sourceUpdateDate="2014-05-01T09:01:56">01</OrganizationFoundedMonth><OrganizationFoundedDay sourceType="4" sourceLink="https://app.sos.ky.gov/ftshow/(S(fuibso3ik0fpgwtjm4azfzf4))/default.aspx?path=ftsearch&id=0238669&ct=09&cs=99998" sourceUpdateDate="2014-05-01T09:01:56">12</OrganizationFoundedDay><OrganizationTypeCode sourceType="15" sourceLink="http://www.snl.com/irweblinkx/corporateprofile.aspx?iid=100548" sourceUpdateDate="2014-05-01T09:01:56">COM</OrganizationTypeCode><OrganizationStatusCode>Act</OrganizationStatusCode><OrganizationProviderTypeCode>1</OrganizationProviderTypeCode><OrganizationJurisdictionOfIncorporationTypeCode sourceType="4" sourceLink="https://app.sos.ky.gov/ftshow/(S(fuibso3ik0fpgwtjm4azfzf4))/default.aspx?path=ftsearch&id=0238669&ct=09&cs=99998" sourceUpdateDate="2014-05-01T09:01:56">451</OrganizationJurisdictionOfIncorporationTypeCode><OrganizationJurisdictionOfIncorporation>KENTUCKY</OrganizationJurisdictionOfIncorporation><OrganizationSubtypeCode sourceType="15" sourceLink="http://www.snl.com/irweblinkx/corporateprofile.aspx?iid=100548" sourceUpdateDate="2014-05-01T09:01:56">FHC</OrganizationSubtypeCode></Organization></env:Data></env:ContentItem><env:ContentItem action="Overwrite"><env:Data xsi:type="OrganizationDataItem"><Organization entityCreatedDate="2009-07-21T11:36:32" entityModifiedDate="2015-01-19T05:24:54" isOrganizationVerified="true" isOrganizationManaged="true" isOrganizationFinancialLocalBranch="false" isOrganizationFinancialForeignBranch="false" isOrganizationOtherBranchandDivision="false" entityLastReviewedDate="2014-03-12T04:00:00" organizationTier="1"><OrganizationId>4295904882</OrganizationId><AdminStatus effectiveFrom="2009-07-21T11:36:32">Published</AdminStatus><OrganizationName effectiveFrom="1993-01-01T05:00:00" organizationNameTypeCode="LNG" languageId="505062" organizationNameLocalNormalized="Saul Centers Inc" sourceType="4" sourceLink="http://sdat.resiusa.org/ucc-charter/Pages/CharterSearch/default.aspx" sourceUpdateDate="2014-08-27T05:49:11">SAUL CENTERS, INC.</OrganizationName><OrganizationName effectiveFrom="1993-01-01T05:00:00" organizationNameTypeCode="SHT" languageId="505062">Saul Centers</OrganizationName><OrganizationAddress addressTypeCode="LREG" languageId="505062" sourceType="4" sourceLink="http://sdat.resiusa.org/ucc-charter/Pages/CharterSearch/default.aspx" sourceUpdateDate="2014-08-27T09:11:07"><OrganizationAddressLine1>351 W Camden St</OrganizationAddressLine1><OrganizationAddressLine2 naCode="NA02" /><OrganizationAddressLine3 naCode="NA02" /><OrganizationAddressCityCode>3394</OrganizationAddressCityCode><OrganizationAddressCity>BALTIMORE</OrganizationAddressCity><OrganizationAddressStateProvince>MARYLAND</OrganizationAddressStateProvince><OrganizationAddressStateProvinceCode>2035</OrganizationAddressStateProvinceCode><OrganizationAddressStateProvinceOfficialCode>MD</OrganizationAddressStateProvinceOfficialCode><OrganizationAddressPostalCode>21201</OrganizationAddressPostalCode><OrganizationAddressCountryCode>US</OrganizationAddressCountryCode></OrganizationAddress><OrganizationAddress addressTypeCode="HEA" languageId="505062" sourceType="22" sourceLink="http://www.sec.gov/Archives/edgar/data/907254/000090725414000033/0000907254-14-000033.txt" sourceUpdateDate="2014-03-17T14:31:40"><OrganizationAddressLine1>SUITE 1500</OrganizationAddressLine1><OrganizationAddressLine2>7501 WISCONSIN AVENUE</OrganizationAddressLine2><OrganizationAddressLine3 naCode="NA02" /><OrganizationAddressCityCode>4616</OrganizationAddressCityCode><OrganizationAddressCity>BETHESDA</OrganizationAddressCity><OrganizationAddressStateProvince>MARYLAND</OrganizationAddressStateProvince><OrganizationAddressStateProvinceCode>2035</OrganizationAddressStateProvinceCode><OrganizationAddressStateProvinceOfficialCode>MD</OrganizationAddressStateProvinceOfficialCode><OrganizationAddressPostalCode>20814</OrganizationAddressPostalCode><OrganizationAddressCountryCode>US</OrganizationAddressCountryCode></OrganizationAddress><OrganizationPhone sourceType="22" sourceLink="http://www.sec.gov/Archives/edgar/data/907254/000090725414000033/0000907254-14-000033.txt" sourceUpdateDate="2014-03-17T14:31:40" organizationPhoneTypeCode="ORG_HQ_ADD_PHONE">13019866207</OrganizationPhone><OrganizationPhone sourceType="22" sourceLink="http://www.sec.gov/Archives/edgar/data/907254/000090725414000033/0000907254-14-000033.txt" sourceUpdateDate="2014-03-17T14:31:40" organizationPhoneTypeCode="ORG_HQ_ADD_FAX">13019866079</OrganizationPhone><OrganizationPhone organizationPhoneTypeCode="ORG_REG_ADD_PHONE" naCode="NA02" /><OrganizationPhone organizationPhoneTypeCode="ORG_REG_ADD_FAX" naCode="NA02" /><OrganizationWebsite sourceType="15" sourceLink="http://www.saulcenters.com/" sourceUpdateDate="2010-04-30T04:00:00">http://www.saulcenters.com/</OrganizationWebsite><IsPublicFlag>true</IsPublicFlag><IpoDate>1993-08-19T04:00:00</IpoDate><OrganizationFoundedYear sourceType="4" sourceLink="http://sdat.resiusa.org/ucc-charter/Pages/CharterSearch/default.aspx" sourceUpdateDate="2014-09-01T06:34:56">1993</OrganizationFoundedYear><OrganizationFoundedMonth sourceType="4" sourceLink="http://sdat.resiusa.org/ucc-charter/Pages/CharterSearch/default.aspx" sourceUpdateDate="2014-09-01T06:34:56">06</OrganizationFoundedMonth><OrganizationFoundedDay sourceType="4" sourceLink="http://sdat.resiusa.org/ucc-charter/Pages/CharterSearch/default.aspx" sourceUpdateDate="2014-09-01T06:34:56">10</OrganizationFoundedDay><OrganizationTypeCode sourceType="15" sourceLink="http://www.saulcenters.com/ourcompany.htm" sourceUpdateDate="2009-07-21T04:00:00">CINV</OrganizationTypeCode><OrganizationStatusCode>Act</OrganizationStatusCode><OrganizationProviderTypeCode>1</OrganizationProviderTypeCode><OrganizationJurisdictionOfIncorporationTypeCode sourceType="4" sourceLink="http://sdat.resiusa.org/ucc-charter/Pages/CharterSearch/default.aspx" sourceUpdateDate="2014-08-28T09:26:06">454</OrganizationJurisdictionOfIncorporationTypeCode><OrganizationJurisdictionOfIncorporation>MARYLAND</OrganizationJurisdictionOfIncorporation><OrganizationSubtypeCode sourceType="15" sourceLink="http://www.saulcenters.com/ourcompany.htm" sourceUpdateDate="2009-07-21T04:00:00">REIT</OrganizationSubtypeCode></Organization></env:Data></env:ContentItem><env:ContentItem action="Overwrite"><env:Data xsi:type="OrganizationDataItem"><Organization entityCreatedDate="2009-07-21T22:04:17" entityModifiedDate="2015-01-19T05:29:09" isOrganizationVerified="true" isOrganizationManaged="true" isOrganizationFinancialLocalBranch="false" isOrganizationFinancialForeignBranch="false" isOrganizationOtherBranchandDivision="false" entityLastReviewedDate="2014-10-22T04:00:00" organizationTier="1"><OrganizationId>4295904889</OrganizationId><AdminStatus effectiveFrom="2009-07-21T22:04:17">Published</AdminStatus><OrganizationName effectiveFrom="1976-01-01T05:00:00" effectiveTo="1997-04-28T04:00:00" organizationNameTypeCode="FKA" languageId="505062" organizationNameLocalNormalized="Schuff Steel Co" sourceType="22" sourceLink="http://www.sec.gov/Archives/edgar/data/354204/000089843007002660/0000898430-07-002660.txt" sourceUpdateDate="2014-10-22T02:27:06">SCHUFF STEEL CO</OrganizationName><OrganizationName effectiveFrom="1997-04-28T04:00:00" organizationNameTypeCode="LNG" languageId="505062" organizationNameLocalNormalized="Schuff International Inc" sourceType="4" sourceLink="https://delecorp.delaware.gov/tin/GINameSearch.jsp" sourceUpdateDate="2009-07-21T04:00:00">SCHUFF INTERNATIONAL, INC.</OrganizationName><OrganizationName effectiveFrom="1997-04-28T04:00:00" organizationNameTypeCode="SHT" languageId="505062">Schuff Intl</OrganizationName><OrganizationAddress addressTypeCode="LREG" languageId="505062" sourceType="4" sourceLink="http://corp.delaware.gov/agents/a9000010.shtml" sourceUpdateDate="2011-05-19T04:00:00"><OrganizationAddressLine1>Corporation Trust Center</OrganizationAddressLine1><OrganizationAddressLine2>1209 Orange Street</OrganizationAddressLine2><OrganizationAddressLine2Transliterated>NA02</OrganizationAddressLine2Transliterated><OrganizationAddressLine2English>NA02</OrganizationAddressLine2English><OrganizationAddressLine3>New Castle County</OrganizationAddressLine3><OrganizationAddressLine3Transliterated>NA02</OrganizationAddressLine3Transliterated><OrganizationAddressLine3English>NA02</OrganizationAddressLine3English><OrganizationAddressCityCode>46865</OrganizationAddressCityCode><OrganizationAddressCity>WILMINGTON</OrganizationAddressCity><OrganizationAddressStateProvince>DELAWARE</OrganizationAddressStateProvince><OrganizationAddressStateProvinceCode>2021</OrganizationAddressStateProvinceCode><OrganizationAddressStateProvinceOfficialCode>DE</OrganizationAddressStateProvinceOfficialCode><OrganizationAddressPostalCode>19801</OrganizationAddressPostalCode><OrganizationAddressCountryCode>US</OrganizationAddressCountryCode></OrganizationAddress><OrganizationAddress addressTypeCode="HEA" languageId="505062" sourceType="22" sourceLink="http://www.sec.gov/Archives/edgar/data/354204/000089843007002660/0000898430-07-002660.txt" sourceUpdateDate="2013-12-09T17:31:21"><OrganizationAddressLine1>1841 W Buchanan St</OrganizationAddressLine1><OrganizationAddressLine2 naCode="NA02" /><OrganizationAddressLine3 naCode="NA02" /><OrganizationAddressCityCode>32165</OrganizationAddressCityCode><OrganizationAddressCity>PHOENIX</OrganizationAddressCity><OrganizationAddressStateProvince>ARIZONA</OrganizationAddressStateProvince><OrganizationAddressStateProvinceCode>2015</OrganizationAddressStateProvinceCode><OrganizationAddressStateProvinceOfficialCode>AZ</OrganizationAddressStateProvinceOfficialCode><OrganizationAddressPostalCode>85007-3335</OrganizationAddressPostalCode><OrganizationAddressCountryCode>US</OrganizationAddressCountryCode></OrganizationAddress><OrganizationPhone sourceType="22" sourceLink="http://www.sec.gov/Archives/edgar/data/354204/000089843007002660/0000898430-07-002660.txt" sourceUpdateDate="2013-12-09T17:31:21" organizationPhoneTypeCode="ORG_HQ_ADD_PHONE">16022527787</OrganizationPhone><OrganizationPhone organizationPhoneTypeCode="ORG_HQ_ADD_FAX" naCode="NA02" /><OrganizationPhone sourceType="4" sourceLink="http://corp.delaware.gov/agents/a9000010.shtml" sourceUpdateDate="2011-05-19T04:00:00" organizationPhoneTypeCode="ORG_REG_ADD_PHONE">13026587581</OrganizationPhone><OrganizationPhone sourceType="4" sourceLink="http://corp.delaware.gov/agents/a9000010.shtml" sourceUpdateDate="2011-05-19T04:00:00" organizationPhoneTypeCode="ORG_REG_ADD_FAX">13026555049</OrganizationPhone><OrganizationWebsite sourceType="15" sourceLink="http://www.schuff.com/" sourceUpdateDate="2014-10-22T02:27:06">http://www.schuff.com/</OrganizationWebsite><IsPublicFlag>true</IsPublicFlag><IpoDate>1997-07-01T04:00:00</IpoDate><OrganizationFoundedYear sourceType="4" sourceLink="https://delecorp.delaware.gov/tin/GINameSearch.jsp" sourceUpdateDate="2009-07-21T04:00:00">2001</OrganizationFoundedYear><OrganizationFoundedMonth sourceType="4" sourceLink="https://delecorp.delaware.gov/tin/GINameSearch.jsp" sourceUpdateDate="2009-07-21T04:00:00">06</OrganizationFoundedMonth><OrganizationFoundedDay sourceType="4" sourceLink="https://delecorp.delaware.gov/tin/GINameSearch.jsp" sourceUpdateDate="2009-07-21T04:00:00">29</OrganizationFoundedDay><OrganizationTypeCode sourceType="15" sourceLink="http://www.schuff.com/schuff-international/about-us/" sourceUpdateDate="2014-10-22T02:27:06">COM</OrganizationTypeCode><OrganizationStatusCode>Act</OrganizationStatusCode><OrganizationProviderTypeCode>1</OrganizationProviderTypeCode><OrganizationJurisdictionOfIncorporationTypeCode sourceType="4" sourceLink="https://delecorp.delaware.gov/tin/GINameSearch.jsp" sourceUpdateDate="2009-07-21T04:00:00">440</OrganizationJurisdictionOfIncorporationTypeCode><OrganizationJurisdictionOfIncorporation>DELAWARE</OrganizationJurisdictionOfIncorporation><OrganizationSubtypeCode sourceType="15" sourceLink="http://www.schuff.com/schuff-international/about-us/" sourceUpdateDate="2014-10-22T02:27:06">COR</OrganizationSubtypeCode></Organization></env:Data></env:ContentItem></env:Body></env:ContentEnvelope>