Parser.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Xml.Linq;
  7. using static System.Runtime.InteropServices.JavaScript.JSType;
  8. namespace IPRS.xiaoshi.sz.com
  9. {
  10. public class Parser
  11. {
  12. public Patent ParserFulltext(string fulltextXml)
  13. {
  14. Patent ret = new Patent();
  15. XDocument doc = XDocument.Parse(fulltextXml);
  16. XElement BiblioElement = doc.Root.Element("{http://www.sipo.gov.cn/XMLSchema/business}BibliographicData");
  17. XElement pubElement = BiblioElement.Elements("{http://www.sipo.gov.cn/XMLSchema/business}PublicationReference").FirstOrDefault(e=>e.Attribute("dataFormat")?.Value == "original");
  18. XElement DocIdElement = pubElement.Element("{http://www.sipo.gov.cn/XMLSchema/base}DocumentID");
  19. var WIPOST3Code = DocIdElement.Element("{http://www.sipo.gov.cn/XMLSchema/base}WIPOST3Code").Value;
  20. var DocNumber = DocIdElement.Element("{http://www.sipo.gov.cn/XMLSchema/base}DocNumber").Value;
  21. var Kind = DocIdElement.Element("{http://www.sipo.gov.cn/XMLSchema/base}Kind").Value;
  22. var Date = DocIdElement.Element("{http://www.sipo.gov.cn/XMLSchema/base}Date").Value;
  23. ret.PubNo = $"{WIPOST3Code}{DocNumber}{Kind}";
  24. ret.PubDate = DateTime.ParseExact(Date.ToString(), "yyyyMMdd", null);
  25. XElement appElement = BiblioElement.Elements("{http://www.sipo.gov.cn/XMLSchema/business}ApplicationReference").FirstOrDefault(e => e.Attribute("dataFormat")?.Value == "original");
  26. DocIdElement = pubElement.Element("{http://www.sipo.gov.cn/XMLSchema/base}DocumentID");
  27. WIPOST3Code = DocIdElement.Element("{http://www.sipo.gov.cn/XMLSchema/base}WIPOST3Code").Value;
  28. DocNumber = DocIdElement.Element("{http://www.sipo.gov.cn/XMLSchema/base}DocNumber").Value;
  29. Kind = DocIdElement.Element("{http://www.sipo.gov.cn/XMLSchema/base}Kind").Value;
  30. Date = DocIdElement.Element("{http://www.sipo.gov.cn/XMLSchema/base}Date").Value;
  31. ret.AppNo = $"{WIPOST3Code}{DocNumber}{Kind}";
  32. ret.AppDate = DateTime.ParseExact(Date.ToString(), "yyyyMMdd", null);
  33. return ret;
  34. }
  35. }
  36. }