2014-10-09 2 views
-1

Мое требование - когда сотрудник импортирует резюме на экран, автоматически Имя, опыт, электронная почта и т. Д., Должен автоматически заполнять текстовые поля, когда он регистрирует время.Как получить определенный контент из резюме с помощью OpenXML SDK в .net MVC

Для этого я использую Open XML SDK 2.0, я написал код, как

   using (WordprocessingDocument doc = WordprocessingDocument.Open(path, true)) 
       { 
        MainDocumentPart mPart = doc.MainDocumentPart; 
        var part = doc.MainDocumentPart; 
        using (StreamReader reader = new StreamReader(mPart.GetStream())) 
        { 
         XDocument xDocument = XDocument.Load(XmlReader.Create(reader)); 
         XNamespace w = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; 
         // the elements we will be looking for data. 
         XName rPr = w + "pPr"; 
         XName p = w + "p"; 
         var query =(from element in xDocument.Descendants(p) 
            select new DocumentModel 
            { 
             ItemProperty = element.Element(rPr) != null ? 
             ((from sElement in element.Descendants(rPr) 
             select new ItemProperty 
             { 
              Style = sElement.IsEmpty == false ? 
              (sElement.Element(w + "pStyle") != null ? 
         sElement.Element(w + "pStyle").Attribute(w + "val").Value : 
         string.Empty) : string.Empty, 
              Lang = sElement.IsEmpty == false ? 
              (sElement.Element(w + "lang") != null ? 
         (sElement.Element(w + "lang").Value ?? string.Empty) : 
         string.Empty) : string.Empty 
             }).First<ItemProperty>()) : null, 
             Text = element.Value == string.Empty ? "<br/>" 
         : element.Value 

            }).ToList(); 

         model.EMP_NAME = query.Text; //Getting Candiate Name here 
        } 
       } 

Я хочу, чтобы получить электронную почту, номер мобильного телефона и т.д .., результат приходит в различных частях как список, каждый часть содержит имя, адрес электронной почты и т. д.

Как найти этот контент при выполнении вышеуказанного запроса. Пожалуйста, помогите мне.

+0

Вниз избирательница .. !! в чем проблема в этом коде? –

ответ

2

Может быть, это обширный код, но он помогает вам узнать, как вы можете узнать адрес электронной почты, имя, номер телефона. Вы можете попробовать более зрелым способом. !!

string[] separators = new string[] { ",", "!", "\'", " ", "\'s" }; 
foreach (string word in element.Text.Split(separators, StringSplitOptions.RemoveEmptyEntries)) 
    { 
    //Split the each work and validate Name , Email, Phone Number. 
    bool Name = Regex.IsMatch(word, @"^[\p{L} \.\-]+$", RegexOptions.IgnoreCase); 
    if (Name) 
     { 
     if (fileContentModel.FIRST_NAME == null) 
      { 
       fileContentModel.FIRST_NAME = word; 
      } 
     else if(fileContentModel.LAST_NAME ==null) 
      { 
       fileContentModel.LAST_NAME = word; 
      } 
     } 
    bool isEmail = Regex.IsMatch(word, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase); 
    if (isEmail) 
    { 
     fileContentModel.EMAIL = word; 
    } 
    bool isPhoneNumber = Regex.IsMatch(word, @"(\([2-9]\d\d\)|[2-9]\d\d) ?[-.,]? ?[2-9]\d\d ?[-.,]? ?\d{4}", RegexOptions.IgnoreCase); 
    if (isPhoneNumber) 
    { 
     fileContentModel.PHONE = word; 
    } 
    } 
Смежные вопросы