Reputation: 141
I am needing to read between specific tags within a XML document. The issue I am having is that not every XML is the same. If the XML contains multiple images, a for each loop is needed but that tag name is FilingConnectedDocument while a single image XML starting tag is FilingLeadDocument. The information I am needing from the XML is the nc:DocumentReceivedDate, nc:DocumentDescriptionText and RegisterActionDescriptionText. Any guidance would be greatly appreciated.
C# code using XML Reader:
private void button1_Click(object sender, EventArgs e)
{
string sourceDir2 = @"server file path";
XmlReaderSettings settings2 = new XmlReaderSettings();
settings2.IgnoreComments = true;
settings2.IgnoreProcessingInstructions = true;
settings2.IgnoreWhitespace = true;
settings2.CheckCharacters = false;
// Reads only XML files from the specific folder
string[] fileEntries2 = Directory.GetFiles(sourceDir2, "*.xml");
foreach (string fileName in fileEntries2)
{
XmlReader xmlReader = XmlReader.Create(fileName, settings2);
while (xmlReader.Read())
{
}
}
}
XML Format:
<?xml version="1.0"?>
<RecordFilingRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:oasis:names:tc:legalxml-courtfiling:wsdl:WebServiceMessagingProfile-Definitions-4.0">
<RecordFilingRequestMessage xmlns:fsrsp="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:FilingStatusResponseMessage-4.0" xmlns:ecf="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:CommonTypes-4.0" xmlns:j="http://niem.gov/niem/domains/jxdm/4.0" xmlns:juvenile="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:JuvenileCase-4.0" xmlns:niem-xsd="http://niem.gov/niem/proxy/xsd/2.0" xmlns:domestic="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:DomesticCase-4.0" xmlns:s="http://niem.gov/niem/structures/2.0" xmlns:criminal="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:CriminalCase-4.0" xmlns:amcadext="http://www.amcad.com/NiemEcf/extensions/1.0" xmlns:i="http://niem.gov/niem/appinfo/2.0" xmlns:appellate="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:AppellateCase-4.0" xmlns:nc="http://niem.gov/niem/niem-core/2.0" xmlns:citation="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:CitationCase-4.0" xmlns:reviewcb="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:ReviewFilingCallbackMessage-4.0" xmlns:civil="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:CivilCase-4.0">
<nc:DocumentDescriptionText s:id="ReviewWorkQueueId">476</nc:DocumentDescriptionText>
<nc:DocumentDescriptionText s:id="ReviewWorkQueue">Circuit Criminal Existing Cases</nc:DocumentDescriptionText>
<nc:DocumentIdentification>
<nc:IdentificationID>6379325</nc:IdentificationID>
</nc:DocumentIdentification>
<nc:DocumentPostDate>
<nc:DateTime>2013-10-14T16:56:14.290623-04:00</nc:DateTime>
</nc:DocumentPostDate>
<nc:DocumentSubmitter>
<ecf:EntityPerson s:id="REVIEWER">
<nc:PersonName>
<nc:PersonGivenName></nc:PersonGivenName>
<nc:PersonSurName></nc:PersonSurName>
<nc:PersonFullName></nc:PersonFullName>
</nc:PersonName>
<nc:PersonOtherIdentification>
<nc:IdentificationID>27404</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL</nc:IdentificationCategoryText>
</nc:PersonOtherIdentification>
<nc:PersonOtherIdentification>
<nc:IdentificationID></nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL_LOGONNAME</nc:IdentificationCategoryText>
</nc:PersonOtherIdentification>
<ecf:PersonAugmentation>
<nc:ContactInformation>
<nc:ContactEmailID></nc:ContactEmailID>
</nc:ContactInformation>
</ecf:PersonAugmentation>
</ecf:EntityPerson>
</nc:DocumentSubmitter>
<ecf:SendingMDELocationID>
<nc:IdentificationID>Filing Review MDE</nc:IdentificationID>
</ecf:SendingMDELocationID>
<ecf:SendingMDEProfileCode>urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:WebServicesMessaging-2.0</ecf:SendingMDEProfileCode>
<CoreFilingMessage xmlns="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:CoreFilingMessage-4.0">
<nc:DocumentEffectiveDate>
<nc:DateTime>2013-10-14T16:11:45.677-04:00</nc:DateTime>
</nc:DocumentEffectiveDate>
<nc:DocumentIdentification>
<nc:IdentificationID>6379325</nc:IdentificationID>
</nc:DocumentIdentification>
<nc:DocumentInformationCutOffDate>
<nc:DateTime>2013-10-14T16:11:45.677-04:00</nc:DateTime>
</nc:DocumentInformationCutOffDate>
<nc:DocumentPostDate>
<nc:DateTime>2013-10-14T16:11:45-04:00</nc:DateTime>
</nc:DocumentPostDate>
<nc:DocumentReceivedDate>
<nc:DateTime>2013-10-14T16:11:45.677-04:00</nc:DateTime>
</nc:DocumentReceivedDate>
<nc:DocumentSubmitter>
<ecf:EntityPerson s:id="FILER">
<nc:PersonName>
<nc:PersonGivenName></nc:PersonGivenName>
<nc:PersonSurName></nc:PersonSurName>
<nc:PersonNameSuffixText s:metadata="III">III</nc:PersonNameSuffixText>
<nc:PersonFullName></nc:PersonFullName>
</nc:PersonName>
<nc:PersonOtherIdentification>
<nc:IdentificationID>24759</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL</nc:IdentificationCategoryText>
</nc:PersonOtherIdentification>
<nc:PersonOtherIdentification>
<nc:IdentificationID>STB</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL_LOGONNAME</nc:IdentificationCategoryText>
</nc:PersonOtherIdentification>
<nc:PersonOtherIdentification>
<nc:IdentificationID>128820FL</nc:IdentificationID>
<nc:IdentificationCategoryText>BAR_NUMBER</nc:IdentificationCategoryText>
</nc:PersonOtherIdentification>
<nc:PersonOtherIdentification>
<nc:IdentificationID></nc:IdentificationID>
<nc:IdentificationCategoryText>EMPLOYER</nc:IdentificationCategoryText>
</nc:PersonOtherIdentification>
<ecf:PersonAugmentation>
<nc:ContactInformation>
<nc:ContactEmailID></nc:ContactEmailID>
<nc:ContactMailingAddress>
<nc:StructuredAddress>
<nc:AddressDeliveryPointText></nc:AddressDeliveryPointText>
<nc:LocationCityName></nc:LocationCityName>
<nc:LocationStateUSPostalServiceCode>FL</nc:LocationStateUSPostalServiceCode>
<nc:LocationStateName></nc:LocationStateName>
<nc:LocationPostalCode></nc:LocationPostalCode>
</nc:StructuredAddress>
<nc:AddressFullText></nc:AddressFullText>
</nc:ContactMailingAddress>
<nc:ContactTelephoneNumber s:id="PRIMARYPHONE">
<nc:FullTelephoneNumber>
<nc:TelephoneNumberFullID></nc:TelephoneNumberFullID>
</nc:FullTelephoneNumber>
</nc:ContactTelephoneNumber>
</nc:ContactInformation>
</ecf:PersonAugmentation>
</ecf:EntityPerson>
</nc:DocumentSubmitter>
<ecf:SendingMDELocationID s:id="Filing Assembly MDE">
<nc:IdentificationID>http://www.myflcourtaccess.com/Courts/UIPages/SimpleEFileFees.aspx?organizationId=5</nc:IdentificationID>
<nc:IdentificationID>209.16.117.2</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL</nc:IdentificationCategoryText>
</ecf:SendingMDELocationID>
<ecf:SendingMDEProfileCode>urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:WebServicesMessaging-2.0</ecf:SendingMDEProfileCode>
<ecf:ElectronicServiceInformation s:id="1">
<ecf:ServiceRecipientID s:id="24759" s:metadata="Samuel Bookhardt III">
<nc:IdentificationID>;</nc:IdentificationID>
<nc:IdentificationCategoryText>Electronic</nc:IdentificationCategoryText>
</ecf:ServiceRecipientID>
</ecf:ElectronicServiceInformation>
<ecf:ElectronicServiceInformation s:id="2">
<ecf:ServiceRecipientID s:id="-1" s:metadata="Phil Archer, State Attorney">
<nc:IdentificationID>;;</nc:IdentificationID>
<nc:IdentificationCategoryText>Electronic</nc:IdentificationCategoryText>
</ecf:ServiceRecipientID>
</ecf:ElectronicServiceInformation>
<criminal:Case>
<nc:ActivityDescriptionText s:id="Circuit Criminal">Other Crimes Against Persons</nc:ActivityDescriptionText>
<nc:ActivityStatus>
<nc:StatusText>ORIGINAL PEND </nc:StatusText>
<nc:StatusDate>
<nc:DateTime>2013-10-14T00:00:00-04:00</nc:DateTime>
</nc:StatusDate>
</nc:ActivityStatus>
<nc:CaseTitleText></nc:CaseTitleText>
<nc:CaseCategoryText s:id="40781916530">904</nc:CaseCategoryText>
<nc:CaseTrackingID></nc:CaseTrackingID>
<nc:CaseTrackingID s:id="ucn"></nc:CaseTrackingID>
<j:CaseAugmentation>
<j:CaseCourt>
<nc:OrganizationIdentification>
<nc:IdentificationID>5</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL_ORGANIZATION</nc:IdentificationCategoryText>
</nc:OrganizationIdentification>
<nc:OrganizationIdentification>
<nc:IdentificationID>2</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL_ORGANIZATION_UNIT</nc:IdentificationCategoryText>
</nc:OrganizationIdentification>
<nc:OrganizationIdentification>
<nc:IdentificationID>Trial</nc:IdentificationID>
<nc:IdentificationCategoryText>COURT_TYPE</nc:IdentificationCategoryText>
</nc:OrganizationIdentification>
<nc:OrganizationIdentification>
<nc:IdentificationID>Eighteenth Circuit</nc:IdentificationID>
<nc:IdentificationCategoryText>JUDICIAL_CIRCUIT_ID</nc:IdentificationCategoryText>
</nc:OrganizationIdentification>
<nc:OrganizationName></nc:OrganizationName>
<nc:OrganizationUnitName>Circuit </nc:OrganizationUnitName>
<j:CourtName></j:CourtName>
</j:CaseCourt>
</j:CaseAugmentation>
<ecf:CaseAugmentation>
<nc:LanguageCode xsi:nil="true" />
</ecf:CaseAugmentation>
</criminal:Case>
<FilingConfidentialityIndicator>false</FilingConfidentialityIndicator>
<FilingLeadDocument s:id="DOC00001" s:metadata="# Pages=3">
<nc:DocumentApplicationName>application/pdf</nc:DocumentApplicationName>
<nc:DocumentDescriptionText s:id="Motions">Motion to Set Bond</nc:DocumentDescriptionText>
<nc:DocumentFileControlID s:id="FileInputId">101</nc:DocumentFileControlID>
<nc:DocumentFileControlID s:id="Rule6PublicAnswer">-1</nc:DocumentFileControlID>
<nc:DocumentFileControlID s:id="Rule6ConfidentialAnswer">-1</nc:DocumentFileControlID>
<nc:DocumentFileControlID s:id="TypeOfConfidentialDocument">-1</nc:DocumentFileControlID>
<nc:DocumentPostDate>
<nc:DateTime>2013-10-14T16:11:45-04:00</nc:DateTime>
</nc:DocumentPostDate>
<nc:DocumentReceivedDate>
<nc:DateTime>2013-10-14T16:11:45.677-04:00</nc:DateTime>
</nc:DocumentReceivedDate>
<nc:DocumentSequenceID>1</nc:DocumentSequenceID>
<ecf:DocumentMetadata>
<j:RegisterActionDescriptionText s:id="2089067143">3022 </j:RegisterActionDescriptionText>
<ecf:FilingPartyID>
<nc:IdentificationID>24759</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL</nc:IdentificationCategoryText>
</ecf:FilingPartyID>
<ecf:SpecialHandlingInstructions />
</ecf:DocumentMetadata>
<ecf:DocumentRendition>
<ecf:DocumentRenditionMetadata>
<nc:DocumentApplicationName>application/pdf</nc:DocumentApplicationName>
<nc:DocumentFileControlID>bond jeremey carmichael.pdf</nc:DocumentFileControlID>
<ecf:DocumentAttachment s:id="ATT00001">
<nc:BinaryBase64Object></nc:BinaryBase64Object>
<nc:BinarySizeValue>12862</nc:BinarySizeValue>
<ecf:AttachmentSequenceID>1</ecf:AttachmentSequenceID>
</ecf:DocumentAttachment>
</ecf:DocumentRenditionMetadata>
</ecf:DocumentRendition>
</FilingLeadDocument>
<FilingConnectedDocument s:id="DOC00002" s:metadata="# Pages=1">
<nc:DocumentApplicationName>application/pdf</nc:DocumentApplicationName>
<nc:DocumentDescriptionText s:id="Notices">Notice of Hearing</nc:DocumentDescriptionText>
<nc:DocumentFileControlID s:id="FileInputId">102</nc:DocumentFileControlID>
<nc:DocumentFileControlID s:id="Rule6PublicAnswer">-1</nc:DocumentFileControlID>
<nc:DocumentFileControlID s:id="Rule6ConfidentialAnswer">-1</nc:DocumentFileControlID>
<nc:DocumentFileControlID s:id="TypeOfConfidentialDocument">-1</nc:DocumentFileControlID>
<nc:DocumentPostDate>
<nc:DateTime>2013-10-14T16:11:45-04:00</nc:DateTime>
</nc:DocumentPostDate>
<nc:DocumentReceivedDate>
<nc:DateTime>2013-10-14T16:11:45.677-04:00</nc:DateTime>
</nc:DocumentReceivedDate>
<nc:DocumentSequenceID>2</nc:DocumentSequenceID>
<ecf:DocumentMetadata>
<j:RegisterActionDescriptionText s:id="2089067191">6724 </j:RegisterActionDescriptionText>
<ecf:FilingPartyID>
<nc:IdentificationID>24759</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL</nc:IdentificationCategoryText>
</ecf:FilingPartyID>
</ecf:DocumentMetadata>
<ecf:DocumentRendition>
<ecf:DocumentRenditionMetadata>
<nc:DocumentApplicationName>application/pdf</nc:DocumentApplicationName>
<nc:DocumentFileControlID>NOH Bond Nebbia 10.11.13.pdf</nc:DocumentFileControlID>
<ecf:DocumentAttachment s:id="ATT00002">
<nc:BinaryBase64Object></nc:BinaryBase64Object>
<nc:BinarySizeValue>8812</nc:BinarySizeValue>
<ecf:AttachmentSequenceID>2</ecf:AttachmentSequenceID>
</ecf:DocumentAttachment>
</ecf:DocumentRenditionMetadata>
</ecf:DocumentRendition>
</FilingConnectedDocument>
</CoreFilingMessage>
<RecordDocketingMessage xmlns="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:RecordDocketingMessage-4.0">
<nc:DocumentIdentification>
<nc:IdentificationID>6379325</nc:IdentificationID>
</nc:DocumentIdentification>
<nc:DocumentPostDate>
<nc:DateTime>2013-10-14T16:56:14.290623-04:00</nc:DateTime>
</nc:DocumentPostDate>
<nc:DocumentSubmitter>
<ecf:EntityPerson s:id="REVIEWER">
<nc:PersonName>
<nc:PersonGivenName></nc:PersonGivenName>
<nc:PersonSurName></nc:PersonSurName>
<nc:PersonFullName></nc:PersonFullName>
</nc:PersonName>
<nc:PersonOtherIdentification>
<nc:IdentificationID>27404</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL</nc:IdentificationCategoryText>
</nc:PersonOtherIdentification>
<nc:PersonOtherIdentification>
<nc:IdentificationID></nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL_LOGONNAME</nc:IdentificationCategoryText>
</nc:PersonOtherIdentification>
<ecf:PersonAugmentation>
<nc:ContactInformation>
<nc:ContactEmailID></nc:ContactEmailID>
</nc:ContactInformation>
</ecf:PersonAugmentation>
</ecf:EntityPerson>
</nc:DocumentSubmitter>
<ecf:SendingMDELocationID>
<nc:IdentificationID>Filing Review MDE</nc:IdentificationID>
</ecf:SendingMDELocationID>
<ecf:SendingMDEProfileCode>urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:WebServicesMessaging-2.0</ecf:SendingMDEProfileCode>
<j:CaseCourt>
<nc:OrganizationIdentification>
<nc:IdentificationID>5</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL_ORGANIZATION</nc:IdentificationCategoryText>
</nc:OrganizationIdentification>
<nc:OrganizationIdentification>
<nc:IdentificationID>2</nc:IdentificationID>
<nc:IdentificationCategoryText>FLEPORTAL_ORGANIZATION_UNIT</nc:IdentificationCategoryText>
</nc:OrganizationIdentification>
<nc:OrganizationIdentification>
<nc:IdentificationID>Trial</nc:IdentificationID>
<nc:IdentificationCategoryText>COURT_TYPE</nc:IdentificationCategoryText>
</nc:OrganizationIdentification>
<nc:OrganizationIdentification>
<nc:IdentificationID>Eighteenth Circuit</nc:IdentificationID>
<nc:IdentificationCategoryText>JUDICIAL_CIRCUIT_ID</nc:IdentificationCategoryText>
</nc:OrganizationIdentification>
<nc:OrganizationName>Brevard</nc:OrganizationName>
<nc:OrganizationUnitName>Circuit Criminal</nc:OrganizationUnitName>
<j:CourtName>Brevard Circuit Criminal</j:CourtName>
</j:CaseCourt>
<nc:CaseTrackingID>052013CF050219AXXXXX</nc:CaseTrackingID>
<ecf:ReviewedLeadDocument s:id="REVIEWEDDOC00001">
<nc:DocumentFiledDate>
<nc:DateTime>2013-10-14T00:00:00</nc:DateTime>
</nc:DocumentFiledDate>
<nc:DocumentPostDate>
<nc:DateTime>2013-10-14T16:11:45</nc:DateTime>
</nc:DocumentPostDate>
<nc:DocumentReceivedDate>
<nc:DateTime>2013-10-14T16:11:45.677</nc:DateTime>
</nc:DocumentReceivedDate>
<nc:DocumentSequenceID>1</nc:DocumentSequenceID>
<nc:DocumentStatus>
<nc:StatusText>ACCEPTED</nc:StatusText>
</nc:DocumentStatus>
<ecf:DocumentMetadata>
<j:RegisterActionDescriptionText s:id="2089067143">3022 </j:RegisterActionDescriptionText>
<ecf:ParentDocumentReference s:ref="DOC00001" />
</ecf:DocumentMetadata>
<ecf:DocumentRendition>
<ecf:DocumentRenditionMetadata s:metadata="3" />
</ecf:DocumentRendition>
</ecf:ReviewedLeadDocument>
<ecf:ReviewedConnectedDocument s:id="REVIEWEDDOC00002">
<nc:DocumentFiledDate>
<nc:DateTime>2013-10-14T00:00:00</nc:DateTime>
</nc:DocumentFiledDate>
<nc:DocumentPostDate>
<nc:DateTime>2013-10-14T16:11:45</nc:DateTime>
</nc:DocumentPostDate>
<nc:DocumentReceivedDate>
<nc:DateTime>2013-10-14T16:11:45.677</nc:DateTime>
</nc:DocumentReceivedDate>
<nc:DocumentSequenceID>2</nc:DocumentSequenceID>
<nc:DocumentStatus>
<nc:StatusText>ACCEPTED</nc:StatusText>
</nc:DocumentStatus>
<ecf:DocumentMetadata>
<j:RegisterActionDescriptionText s:id="2089067191">6724 </j:RegisterActionDescriptionText>
<ecf:ParentDocumentReference s:ref="DOC00002" />
</ecf:DocumentMetadata>
<ecf:DocumentRendition>
<ecf:DocumentRenditionMetadata s:metadata="1" />
</ecf:DocumentRendition>
</ecf:ReviewedConnectedDocument>
</RecordDocketingMessage>
<payment:PaymentMessage xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-1.0" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0" xmlns:receipt="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:PaymentReceiptMessage-4.0" xmlns:payment="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:PaymentMessage-4.0">
<payment:PayerName></payment:PayerName>
<cac:AllowanceCharge>
<cac:ID identificationSchemeID="NA" identificationSchemeName="Filing fee" identificationSchemeAgencyID="-1">NA</cac:ID>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:PrepaidIndicator>false</cbc:PrepaidIndicator>
<cbc:SequenceNumeric>1</cbc:SequenceNumeric>
<cbc:Amount amountCurrencyID="USD">0</cbc:Amount>
<cac:Reason>Filing fee</cac:Reason>
</cac:AllowanceCharge>
<cac:AllowanceCharge>
<cac:ID identificationSchemeID="NA" identificationSchemeName="Motions Motion to Set Bond" identificationSchemeAgencyID="101">NA</cac:ID>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:PrepaidIndicator>false</cbc:PrepaidIndicator>
<cbc:SequenceNumeric>2</cbc:SequenceNumeric>
<cbc:Amount amountCurrencyID="USD">0</cbc:Amount>
<cac:Reason>Motions Motion to Set Bond</cac:Reason>
</cac:AllowanceCharge>
<cac:AllowanceCharge>
<cac:ID identificationSchemeID="NA" identificationSchemeName="Notices Notice of Hearing" identificationSchemeAgencyID="102">NA</cac:ID>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:PrepaidIndicator>false</cbc:PrepaidIndicator>
<cbc:SequenceNumeric>3</cbc:SequenceNumeric>
<cbc:Amount amountCurrencyID="USD">0</cbc:Amount>
<cac:Reason>Notices Notice of Hearing</cac:Reason>
</cac:AllowanceCharge>
<cac:Address>
<cac:AddressLine>
<cbc:Line>1980 Michigan Ave.</cbc:Line>
<cbc:Line />
<cbc:Line>Cocoa</cbc:Line>
<cbc:Line>FL</cbc:Line>
<cbc:Line>32922</cbc:Line>
</cac:AddressLine>
</cac:Address>
</payment:PaymentMessage>
</RecordFilingRequestMessage>
</RecordFilingRequest>
Upvotes: 1
Views: 3735
Reputation: 2137
You will feel much less pain using LINQ to XML. The trick in this case is to take care of all the namespaces defined in the document. But that's not too hard with XNamespace.Get method and the XName concatenation operator overload.
private static IEnumerable<Tuple<DateTime, string, string>> GetDocumentsData(string folderPath)
{
var filingMessageNamespace = XNamespace.Get("urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:CoreFilingMessage-4.0");
var ncNamespace = XNamespace.Get("http://niem.gov/niem/niem-core/2.0");
var ecfNamespace = XNamespace.Get("urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:CommonTypes-4.0");
var jNamespace = XNamespace.Get("http://niem.gov/niem/domains/jxdm/4.0");
return Directory
.GetFiles(folderPath, "XML*.xml")
.Select(XDocument.Load)
.SelectMany(
file =>
file.Descendants(filingMessageNamespace + "FilingLeadDocument")
.Concat(file.Descendants(filingMessageNamespace + "FilingConnectedDocument")))
.Select(
documentNode =>
Tuple.Create(
DateTime.Parse(documentNode.Element(ncNamespace + "DocumentReceivedDate").Element(ncNamespace + "DateTime").Value),
documentNode.Element(ncNamespace + "DocumentDescriptionText").Value.Trim(),
documentNode.Element(ecfNamespace + "DocumentMetadata").Element(jNamespace + "RegisterActionDescriptionText").Value.Trim()))
.ToArray();
}
You can start here if you want to learn more. Just keep in mind that the whole API is much more intuitive than XmlDocument's DOM approach and works transparently with LINQ to objects.
Upvotes: 1
Reputation: 1797
Do this like,
string xmlFile = File.ReadAllText(@"Yourxml.xml");
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(xmlFile);
XmlNodeList nodeList = xmldoc.GetElementsByTagName("FilingLeadDocument");
List<info> inforamtion = new List<info>();
foreach (XmlElement node in nodeList)
{
info inf=new info();
inf.RegisterActionDescriptionText = node.GetElementsByTagName("j:RegisterActionDescriptionText")[0].InnerText;
inf.DocumentDescriptionText = node.GetElementsByTagName("nc:DocumentDescriptionText")[0].InnerText;
inf.DocumentReceivedDate = Convert.ToDateTime(node.GetElementsByTagName("nc:DocumentReceivedDate")[0].FirstChild.InnerText);
inforamtion.Add(inf);
}
class info
{
internal string RegisterActionDescriptionText { get; set; }
internal string DocumentDescriptionText { get; set; }
internal DateTime DocumentReceivedDate { get; set; }
}
Upvotes: 2