Using XML Nodes and implement RegEx in VB.Net
Posted on December 31, 2008
Retrive the information from the XML File and evalute the string using the Regular expression.
XML File which we will iterate and retrive data from:
Pattern.xml:-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?xml version="1.0" encoding="utf-8" ?> - <MatchingCriterias> - <CriteriaForAllPages> <MatchingCriteria Value="Chksum: \d(2,)" /> </CriteriaForAllPages> - <CriteriaForDeletedPages> - <Criteria Name="DocHeaderPage"> <MatchingCriteria Value="DOC \d+ \:?\s?Header" /> </Criteria> - <Criteria Name="SubmissionHeaderPage"> <MatchingCriteria Value="JobNumber:" /> <MatchingCriteria Value="SUBMISSION" /> <MatchingCriteria Value="SUBMISSION-CONTACT" /> </Criteria> - <Criteria Name="DocumentDescriptionPage"> <MatchingCriteria Value="JobNumber:" /> <MatchingCriteria Value="Name" /> <MatchingCriteria Value="Description" /> <MatchingCriteria Value="DOC \d+" /> </Criteria> </CriteriaForDeletedPages> </MatchingCriterias> |
VB Code to retreive the informations:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | Imports System.Text.RegularExpressions Imports System.Xml Imports System.IO Private Function IsDocHeaderPage(ByRef oPage As String) As Boolean Dim xmlCriteriaDoc As XmlDocument, lstCriteria As XmlNodeList, nodeCriteria As XmlNode, nodeChildCriteria As XmlNode Dim blnCheckCriteria As Boolean xmlCriteriaDoc = New XmlDocument Try xmlCriteriaDoc.Load("C://Temp//Pattern.xml") If Not xmlCriteriaDoc Is Nothing Then lstCriteria = xmlCriteriaDoc.SelectNodes("//CriteriaForAllPages") If Not lstCriteria Is Nothing Then For Each nodeCriteria In lstCriteria For Each nodeChildCriteria In nodeCriteria.ChildNodes 'using regular expression with the pattern retreived blnCheckCriteria = Regex.IsMatch(oPage.ToString, nodeChildCriteria.Attributes("Value").InnerText.ToString(), RegexOptions.Singleline) If blnCheckCriteria Then IsDocHeaderPage = False Return IsDocHeaderPage End If Next nodeChildCriteria Next nodeCriteria End If lstCriteria = xmlCriteriaDoc.SelectNodes("//CriteriaForDeletedPages/Criteria") If Not lstCriteria Is Nothing Then For Each nodeCriteria In lstCriteria For Each nodeChildCriteria In nodeCriteria.ChildNodes blnCheckCriteria = Regex.IsMatch(oPage.Contents.CreateSingleContent.Stream.ToString, nodeChildCriteria.Attributes("Value").InnerText.ToString(), RegexOptions.Singleline) If Not blnCheckCriteria Then Exit For End If If nodeChildCriteria Is nodeCriteria.LastChild Then IsDocHeaderPage = True IsAnyHeaderPageExists = True Return IsDocHeaderPage End If Next nodeChildCriteria Next nodeCriteria End If End If Catch ex As Exception IsDocHeaderPage = False MessageBox.Show(ex.Message) End Try End Function |








