Friday, June 22, 2012

R and the web (for beginners), Part II: XML in R


This second post of my little series on R and the web deals with how to access and process XML-data with R. XML is a markup language that is commonly used to interchange data over the Internet. If you want to access some online data over a webpage's API you are likely to get it in XML format. So here is a very simple example of how to deal with XML in R.
Duncan Temple Lang wrote a very helpful R-package which makes it quite easy to parse, process and generate XML-data with R. I use that package in this example. The XML document (taken from w3schools.com) used in this example describes a fictive plant catalog. Not that thrilling, I know, but the goal of this post is not to analyze the given data but to show how to parse it and transform it to a data frame. The analysis is up to you...

How to parse/read this XML-document into R?
 
# install and load the necessary package

install.packages("XML")
library(XML)


# Save the URL of the xml file in a variable

xml.url <- "http://www.w3schools.com/xml/plant_catalog.xml"

# Use the xmlTreePares-function to parse xml file directly from the web
 
xmlfile <- xmlTreeParse(xml.url)


# the xml file is now saved as an object you can easily work with in R:

class(xmlfile)



# Use the xmlRoot-function to access the top node

xmltop = xmlRoot(xmlfile)

# have a look at the XML-code of the first subnodes:

print(xmltop)[1:2]

This should look more or less like:


$PLANT
<PLANT>
 <COMMON>Bloodroot</COMMON>
 <BOTANICAL>Sanguinaria canadensis</BOTANICAL>
 <ZONE>4</ZONE>
 <LIGHT>Mostly Shady</LIGHT>
 <PRICE>$2.44</PRICE>
 <AVAILABILITY>031599</AVAILABILITY>
</PLANT>

$PLANT
<PLANT>
 <COMMON>Columbine</COMMON>
 <BOTANICAL>Aquilegia canadensis</BOTANICAL>
 <ZONE>3</ZONE>
 <LIGHT>Mostly Shady</LIGHT>
 <PRICE>$9.37</PRICE>
 <AVAILABILITY>030699</AVAILABILITY>
</PLANT>

attr(,"class")
[1] "XMLNodeList"

One can already assume how this data should look like in a matrix or data frame. The goal is to extract the XML-values from each XML-tag <> for all $PLANT nodes and save them in a data frame with a row for each plant ($PLANT-node) and a column for each tag (variable) describing it. How can you do that?


# To extract the XML-values from the document, use xmlSApply:

plantcat <- xmlSApply(xmltop, function(x) xmlSApply(x, xmlValue))


# Finally, get the data in a data-frame and have a look at the first rows and columns

plantcat_df <- data.frame(t(plantcat),row.names=NULL)
plantcat_df[1:5,1:4]

The first rows and columns of that data frame should look like this:
 
               COMMON              BOTANICAL ZONE        LIGHT
1           Bloodroot Sanguinaria canadensis    4 Mostly Shady
2           Columbine   Aquilegia canadensis    3 Mostly Shady
3      Marsh Marigold       Caltha palustris    4 Mostly Sunny
4             Cowslip       Caltha palustris    4 Mostly Shady
5 Dutchman's-Breeches    Dicentra cucullaria    3 Mostly Shady
Which is exactly what we need to analyze this data in R.



240 comments:

  1. Hi
    How to pass the parameters for the year='2012" and month="August" to this url?.
    It gives me no tables.why?.
    thanks
    veepsirtt

    options(RCurlOptions = list(useragent = "R"))
    library(RCurl)
    url <- "http://www.bseindia.com/histdata/categorywise_turnover.asp"
    wp = getURLContent(url)

    library(RHTMLForms)
    library(XML)
    doc = htmlParse(wp, asText = TRUE)
    form = getHTMLFormDescription(doc)[[1]]
    fun = createFunction(form)
    o = fun(mmm = "9", yyy = "2012",url="http://www.bseindia.com/histdata/categorywise_turnover.asp")

    table = readHTMLTable(htmlParse(o, asText = TRUE),
    header = TRUE,
    stringsAsFactors = FALSE)
    table

    ReplyDelete
  2. Hi veepsirtt,

    I'm not very familiar with the RHTMLForms-package, thus I might be the wrong guy to answer this question. Nevertheless, I guess the problem occurs already in your application of createFunction(), with your code I get from that line:

    Error in if (action != "") formDescription$url = toString.URI(mergeURI(URI(action), :
    missing value where TRUE/FALSE needed

    something seems to be wrong with the formDescription-argument you are using in createFunction().

    I'd recommend you to carefully check the documentation of this function and in the worst case to contact the Author of the function if that problem doesn't pop up in any forum or mailing list.

    ReplyDelete
  3. Hi, any thoughts on how to extract data from an embedded spreadsheet, as is in the following example: http://pakistanbodycount.org/drone_attack

    Thanks in advance!

    ReplyDelete
  4. Hi Andrew,

    A good general starting point is to use Firebug (a Firefox extension) to inspect the website with the data you are interested in.

    What you refer to in your example as "embedded spreadsheet" seems to be in the end a HTML-table (for which the same techniques as described in my post on web scraping should work: http://giventhedata.blogspot.com/2012/08/r-and-web-for-beginners-part-iii.html)

    Mind though that scraping data from a web site, such as in your example, is often a lot more tricky than querying/extracting data from a XML-document.

    best regards

    ReplyDelete
  5. Thanks! Seem to be getting an error at the second step (mps.doc <- htmlParse(mps)) but am new to this and will keep playing. Appreciate the feedback!

    D

    ReplyDelete
  6. Hi

    You can do this and get same result :D

    plantcat_df <-xmlToDataFrame(xml.url)

    ReplyDelete
    Replies
    1. Hi Claudio

      you've correctly pointed out that the XML package also comes with a convenient function (xmlToDataFrame) to "extract data from a simple XML document". There are mainly two reasens why I didn't want to point to that function in this post:

      1) if you are a novice in xml/R you don't learn anything by just using xmlToDataFrame in the above example. The explicit aim of the post is to give some insights into how one can work with XML documents in R.

      2) as the documentation of xmlToDataFrame mentions, this function is made for "simple" XML documents. You will notice what this means as soon as your trying to use xmlToDataFrame in a more complex xml structure as the very simple example above.

      a third, rather minor point is that even if xmlToDataFrame works in your setting it is likely to be less efficient than a self-made function written with the functions pointed out in the example.

      anyway, thanks for pointing this out! mentioning the convenient function as concluding remarks in my post would not have been a bad idea.

      Best,

      Delete
  7. Hi there. Thoughts on good ways to access a very long and complicated XML documents? For example this: http://pastebin.com/tFVwyJgt

    ReplyDelete
  8. HTML tutorial for beginners with examples

    Free online HTML tutorial for beginners with examples - HTML tutorial will help you in creating website, after study the tutorial you will just one step ahead of creating your own website. HTML is easy to understand and you will enjoy it to learn. HTML tutorial contains hundreds of examples to better understand.

    http://www.willvick.com/
    http://www.willvick.com/HTML-tutorial-for-beginners-with-examples/HTML-tutorial-for-beginners-with-examples.aspx

    ReplyDelete
  9. This comment has been removed by the author.

    ReplyDelete
  10. Nice blog Very useful information is providing by ur blog. Great beginning html tutorials Very clear and helpful for beginners.

    ReplyDelete
  11. Great Tutorial. I really learned some new things here. So thanks a lot

    web design training in chennai

    ReplyDelete
  12. I would like to say that this blog really convinced me to do it! Thanks, very good post.
    web hosting reviews

    ReplyDelete
  13. The XML schema contains whole information about the relation structure .It contains information regarding table, constraints and relation . See more at: xml file

    ReplyDelete
  14. Thank you this was very useful!

    ReplyDelete
  15. Hi, I tried to replicate this code for a different XML. However, when I use xmlSApply for creating a matrix object, I receive an list object. I know that this is because some observations contain more values than others, but I don't know how to overcome the problem. Can you please help me? Thanks

    ReplyDelete
  16. Great post!I am actually getting ready to across this information,i am very happy to this commands.Also great blog here with all of the valuable information you have.Well done,its a great knowledge.
    SQL Server Training in Chennai

    ReplyDelete
  17. Thank you for taking the time and sharing this information with us. It was indeed very helpful and insightful while being straight forward and to the point.
    mc donalds gutscheine | startlr | salud limpia

    ReplyDelete
  18. It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful to me...
    Android Training in Chennai
    Ios Training in Chennai

    ReplyDelete
  19. Great blog created by you. I read your blog, its best and useful information. You have done a great work. Super blogging and keep it up.
    php jobs in hyderabad.

    ReplyDelete
  20. I read that Post and got it fine and informative.
    be your own boss

    ReplyDelete
  21. It is a very nice article including a lot of viral content. I am going to share it on social media. Get the online crackers in chennai.

    ReplyDelete
  22. Thank you for the writing a good article and it helps me a lot. Buy the Cold Pressed Oil in India.

    ReplyDelete
  23. • Nice and good article. It is very useful for me to learn and understand easily. Thanks for sharing your valuable information and time. Please keep updatingAzure Online course

    ReplyDelete
  24. This comment has been removed by the author.

    ReplyDelete
  25. Error: 1: Unknown IO error2: failed to load external entity "http://www.w3schools.com/xml/plant_catalog.xml"
    Why it is showing this error?

    ReplyDelete
  26. I read this blog i didn't have any knowledge about this but now i got some knowledge so keep on sharing such kind of an interesting blogs.
    aws scenario based interview questions

    ReplyDelete
  27. Existing without the answers to the difficulties you’ve sorted out through this guide is a critical case, as well as the kind which could have badly affected my entire career if I had not discovered your website.
    Digital Marketing online training

    full stack developer training in pune

    full stack developer training in annanagar

    full stack developer training in tambaram

    full stack developer training in velachery










    ReplyDelete
    Replies
    1. Woah this blog is wonderful i like studying your posts. Keep up the great work! You understand, lots of persons are hunting around for this info, you could help them greatly.
      python training in tambaram
      python training in annanagar
      python training in velachery

      Delete
  28. I believe there are many more pleasurable opportunities ahead for individuals that looked at your site.
    Blueprism training in btm

    Blueprism online training

    AWS Training in chennai

    ReplyDelete
  29. The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
    Data Science training in Chennai
    Data science training in bangalore
    Data science online training
    Data science training in pune

    ReplyDelete
  30. I am really very happy to find this particular site. I just wanted to say thank you for this huge read!! I absolutely enjoying every petite bit of it and I have you bookmarked to test out new substance you post.
    java training in chennai | java training in bangalore

    java online training | java training in pune

    ReplyDelete
  31. It has been just unfathomably liberal with you to give straightforwardly what precisely numerous people would've promoted for an eBook to wind up making some money for their end, basically given that you could have attempted it in the occasion you needed.fire and safety course in chennai

    ReplyDelete
  32. Thanks for such a great article here. I was searching for something like this for quite a long time and at last I’ve found it on your blog. It was definitely interesting for me to read about their market situation nowadays. Well written article android quiz questions and answers | android code structure best practices

    ReplyDelete
  33. When I initially commented, I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get several emails with the same comment. Is there any way you can remove people from that service? Thanks.

    AWS Interview Questions And Answers

    AWS Training in Chennai | Best AWS Training in Chennai


    AWS Training in Pune | Best Amazon Web Services Training in Pune

    AWS Tutorial |Learn Amazon Web Services Tutorials |AWS Tutorial For Beginners

    ReplyDelete
  34. Amazing write-up! , i Request you to write more blogs like this Data Science Online course

    ReplyDelete
  35. Do you have any recommendations for newbie blog writers? I’d appreciate it.
    nebosh course in chennai

    ReplyDelete
  36. Thanks for your efforts in sharing this information in detail. This was very helpful to me. Kindly keep
    continuing the great work.

    Article submission sites
    Education

    ReplyDelete
  37. This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.
    python course institute in bangalore
    python Course in bangalore
    python training institute in bangalore

    ReplyDelete
  38. I read this post two times, I like it so much, please try to keep posting & Let me introduce other material that may be good for our community.

    Java training in Chennai

    Java training in Bangalore

    ReplyDelete
  39. Great post keep on posting new blogs
    https://www.slajobs.com/advanced-excel-vba-training-in-chennai/

    ReplyDelete
  40. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article. thank you for sharing such a great blog with us.
    Data Science training in rajaji nagar
    Data Science with Python training in chennai
    Data Science training in electronic city
    Data Science training in USA
    Data science training in pune

    ReplyDelete
  41. The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
    Best Devops online Training
    Online DevOps Certification Course - Gangboard
    Best Devops Training institute in Chennai

    ReplyDelete
  42. It's interesting that many of the bloggers to helped clarify a few things for me as well as giving.Most of ideas can be nice content.The people to give them a good shake to get your point and across the command.
    rpa training in bangalore
    best rpa training in bangalore
    rpa training in pune | rpa course in bangalore
    rpa training in chennai

    ReplyDelete
  43. After reading this web site I am very satisfied simply because this site is providing comprehensive knowledge for you to audience.
    Thank you to the perform as well as discuss anything incredibly important in my opinion. We loose time waiting for your next article writing in addition to I beg one to get back to pay a visit to our website in



    Selenium training in bangalore
    Selenium training in Chennai
    Selenium training in Bangalore
    Selenium training in Pune
    Selenium Online training

    ReplyDelete
  44. Good job in presenting the correct content with the clear explanation. The content looks real with valid information. Good Work

    DevOps is currently a popular model currently organizations all over the world moving towards to it. Your post gave a clear idea about knowing the DevOps model and its importance.

    Good to learn about DevOps at this time.


    devops training in chennai | devops training in chennai with placement | devops training in chennai omr | devops training in velachery | devops training in chennai tambaram | devops institutes in chennai | devops certification in chennai | trending technologies list 2018 | Top 100 DevOps Interview Questions and Answers

    ReplyDelete
  45. Outstanding blog thanks for sharing such wonderful blog with us ,after long time came across such knowlegeble blog. keep sharing such informative blog with us.

    Machine learning training in chennai
    machine learning with python course in chennai
    machine learning course in chennai
    best training insitute for machine learning

    ReplyDelete
  46. Wonderful article, very useful and well explanation. Your post is extremely incredible. I will refer this to my candidates...
    DevOps Training in Bangalore

    DevOps Training in Pune

    DevOps Online Training

    ReplyDelete
  47. Appericated the efforts you put in the content of Data Science .The Content provided by you for Data Science is up to date and its explained in very detailed for Data Science like even beginers can able to catch.Requesting you to please keep updating the content on regular basis so the peoples who follwing this content for Data Science can easily gets the updated data.
    Thanks and regards,
    Data Science training in Chennai
    Data Science course in chennai with placement
    Data Science certification in chennai
    Data Science course in Omr

    ReplyDelete
  48. Really useful information. Thank you so much for sharing.It will help everyone.Keep Post. RPA training in chennai | RPA training in Chennai with placement

    ReplyDelete
  49. Nice post. Thanks for sharing! I want people to know just how good this information is in your article. It’s interesting content and Great work.
    Thanks & Regards,
    VRIT Professionals,
    No.1 Leading Web Designing Training Institute In Chennai.

    And also those who are looking for
    Web Designing Training Institute in Chennai
    SEO Training Institute in Chennai
    PHP & Mysql Training Institute in Chennai
    Photoshop Training Institute in Chennai
    Android Training Institute in Chennai

    ReplyDelete
  50. Its a good post and keep posting good article.its very interesting to read.

    Blockchain Certification in Chennai

    ReplyDelete
  51. This is the exact information I am been searching for, Thanks for sharing the required infos with the clear update and required points. To appreciate this I like to share some useful information regarding Microsoft Azure which is latest and newest,

    Regards,
    Ramya

    Azure Training in Chennai
    Azure Training center in Chennai
    Best Azure Training in Chennai
    Azure DevOps Training in Chenna
    Azure Training Institute in Chennai
    Azure Training Institute in Velachery
    Azure Training in OMR

    ReplyDelete
  52. Appericated the efforts you put in the content of Data Science .The Content provided by you for Data Science is up to date and its explained in very detailed for Data Science like even beginers can able to catch.Requesting you to please keep updating the content on regular basis so the peoples who follwing this content for Data Science can easily gets the updated data.
    Thanks and regards,
    Data Science training in Chennai
    Data Science course in chennai with placement
    Data Science certification in chennai
    Data Science course in Omr

    ReplyDelete
  53. Your post is just outstanding !!! thanks for such a post, its really going great work.
    Data Science Training in Chennai | Data Science Course in Chennai

    ReplyDelete
  54. Thank you for this post!! I have just discovered your blog recently and I really like it! I will definitely try some of your insights.
    Regards,
    SQL Training in Chennai | SQL DPA Training in Chennai | SQL Training institute in Chennai

    ReplyDelete
  55. Nice Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end. best hadoop training in chennai
    hadoop big data training in chennai
    best institute for big data in chennai
    big data course fees in chennai

    ReplyDelete
  56. Hey Nice Blog!! Thanks For Sharing!!!Wonderful blog & good post.Its really helpful for me, waiting for a more new post. Keep Blogging!
    SEO company in coimbatore
    SEO company
    web design company in coimbatore

    ReplyDelete
  57. Very nice post here thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.

    Check out : hadoop training in chennai cost
    hadoop certification training in chennai
    big data hadoop course in chennai with placement
    big data certification in chennai

    ReplyDelete
  58. Your very own commitment to getting the message throughout came to be rather powerful and have consistently enabled employees just like me to arrive at their desired goals.
    Matlab Training in Chennai | Matlab Course Training in Chennai
    AWS Training in Chennai | Best AWS Course Training in Chennai
    Devops Training in Chennai | Best Devops Course Training in Chennai

    ReplyDelete
  59. Nice work, your blog is concept oriented ,kindly share more blogs like this
    Excellent Blog , I appreciate your hardwork ,it is useful
    It's Very informative blog and useful article thank you for sharing with us , keep posting learn more

    Tableau online Training

    Android Training

    Data Science Course

    Dot net Course

    iOS development course

    ReplyDelete

  60. Excellent blog I visit this blog its really informative. By reading your blog, i get inspired and this provides useful

    information.
    Check out:
    best hadoop training in chennai
    big data course fees in chennai
    hadoop training in chennai cost
    hadoop course in chennai

    ReplyDelete
  61. If you are looking for Mr reporting software that is an online CRM/SFA Solution have very helpful for the Pharmaceutical Industry. CBO is delighted to introduce an all new MR reporting Mobile App, bring your field staff information and our services closer to you. Our MR Reporting Mobile App is now even more user friendly ensuring a delightful experience on mobile while Tracking DCR, TP, Expense sttus viewing and much more.

    ReplyDelete
  62. If you are looking to implement the Sales Force Automation, then CBO Infotech is there to assist you in this regard. Deals drive mechanization programming sales force automation is another name for client relationship administration (CRM) programming.Deals constrain robotization programming gives a solitary area to an organization to oversee and track all business cooperations between their business groups and clients.

    ReplyDelete
  63. It has been simply incredibly generous with you to provide openly what exactly many individuals would’ve marketed for an eBook to end up making some cash for their end, primarily given that you could have tried it in the event you wanted.
    Data Science Training in Chennai | Data Science Course in Chennai
    Python Course in Chennai | Python Training Course Institutes in Chennai
    RPA Training in Chennai | RPA Training in Chennai
    Digital Marketing Course in Chennai | Best Digital Marketing Training in Chennai

    ReplyDelete
  64. Excellant post!!!. The strategy you have posted on this technology helped me to get into the next level and had lot of information in it.

    Cognos Online Training


    Data Modeling Online Training


    Data Science Online Training


    DataGuard Online Training


    DataStage Online Training

    ReplyDelete
  65. Appericated the efforts you put in the content of DevOps .The Content provided by you for DevOps is up to date and its explained in very detailed for DevOps like even beginers can able to catch.Requesting you to please keep updating the content on regular basis so the peoples who follwing this content for DevOps can easily gets the updated data.
    Thanks and regards,
    DevOps training in Chennai
    DevOps course in chennai with placement
    DevOps certification in chennai
    DevOps course in Omr

    ReplyDelete
  66. Really very happy to say that your post is very interesting. I never stop myself to say something about it. You did a great job. Keep it up.
    We have an excellent IT courses training institute in Hyderabad. We are offering a number of courses that are very trendy in the IT industry. For further information, please once go through our site. DevOps Training In Hyderabad

    ReplyDelete
  67. Excellent Blog! thank for the efforts you have made in writing this post. Thank you for this websites!

    Data Science Courses in Bangalore

    ReplyDelete
  68. I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work. Definitely a great post. Hats off to you! The information that you have provided is very helpful.for more:click here

    ReplyDelete
  69. I was just browsing through the internet looking for some information and came across your blog. I am impressed by the information that you have on this blog. It shows how well you understand this subject. Bookmarked this page, will come back for more.

    Data Science Course

    ReplyDelete
  70. I am really enjoying reading your well written articles. It looks like you spend a lot of effort and time on your blog. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work.data science course in dubai

    ReplyDelete
  71. I just got to this amazing site not long ago. I was actually captured with the piece of resources you have got here. Big thumbs up for making such wonderful blog page!data science course in dubai

    ReplyDelete
  72. I am really enjoying reading your well written articles. It looks like you spend a lot of effort and time on your blog. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work.data science course in dubai

    ReplyDelete
  73. I am really enjoying reading your well written articles. It looks like you spend a lot of effort and time on your blog. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work.data science course in dubai

    ReplyDelete
  74. The blog and data is excellent and informative as well
    Data Science Course in Pune

    ReplyDelete
  75. I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work. Definitely a great post. Hats off to you! The information that you have provided is very helpful.data science course in dubai

    ReplyDelete
  76. I finally found great post here.I will get back here. I just added your blog to my bookmark sites. thanks.Quality posts is the crucial to invite the visitors to visit the web page, that's what this web page is providing.data science course in dubai

    ReplyDelete

  77. Get the most advanced RPA Course by RPA Professional expert. Just attend a FREE Demo session about how the RPA Tools get work.
    For further details call us @ 9884412301 | 9600112302
    RPA training in chennai | UiPath training in chennai

    ReplyDelete
  78. Thanks for sharing excellent information.If you Are looking Best smart autocad classes in india,
    provide best service for us.
    autocad in bhopal
    3ds max classes in bhopal
    CPCT Coaching in Bhopal
    java coaching in bhopal
    Autocad classes in bhopal
    Catia coaching in bhopal

    ReplyDelete
  79. Si el agua cae al lago, desaparecerá( phụ kiện tủ bếp ). Pero si cae a la hoja de( phụ kiện tủ áo ) loto, brillará como una joya. Caer igual pero( thùng gạo thông minh ) estar con alguien es importante.

    ReplyDelete
  80. Excellent blog I visit this blog it's really informative. By reading your blog, I get inspired and this provides useful information.

    Check out:
    Selenium course fees in chennai
    Best Selenium training in chennai
    Selenium training courses in chennai
    Selenium training courses in chennai

    ReplyDelete
  81. Hi, Your blog about R and Web for beginners was so useful . I got some idea about this topic now .Thanks for the blog, keep updating!

    Digital Marketing Training in Chennai

    SEO Training in Chennai

    Digital Marketing Agency in Chennai

    ReplyDelete
  82. Its as if you had a great grasp on the subject matter, but you forgot to include your readers. Perhaps you should think about this from more than one angle.
    www.technewworld.in
    How to Start A blog 2019
    Eid AL ADHA

    ReplyDelete
  83. Its as if you had a great grasp on the subject matter, but you forgot to include your readers. Perhaps you should think about this from more than one angle.
    www.technewworld.in
    How to Start A blog 2019
    Eid AL ADHA

    ReplyDelete
  84. Hey, would you mind if I share your blog with my twitter group? There’s a lot of folks that I think would enjoy your content. Please let me know. Thank you.
    excel training in chennai | advanced excel training in chennai | excel classes in chennai | advanced excel course in chennai | ms excel training in chennai | excel courses in chennai

    ReplyDelete
  85. This is also a very good post which I really enjoyed reading. It is not every day that I have the possibility to see something like this,
    Great website

    ReplyDelete
  86. This is also a very good post which I really enjoyed reading. It is not every day that I have the possibility to see something like this,
    Great website

    ReplyDelete
  87. Such a very useful article. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article.
    big data course malaysia

    ReplyDelete
  88. Hey, would you mind if I share your blog with my twitter group? There’s a lot of folks that I think would enjoy your content. Please let me know. Thank you.
    machine learning Training in Chennai | machine learning Training institute in chennai | Best machine learning Training in chennai

    ReplyDelete
  89. This is a decent post. This post gives genuinely quality data. I'm certainly going to investigate it. Actually quite valuable tips are given here. Much obliged to you to such an extent. Keep doing awesome. To know more information about
    Contact us :- https://www.login4ites.com/

    ReplyDelete
  90. It is brilliant substance. I for the most part visit numerous locales however your site has something unique highlights. I for the most part visit on your site. Best Seo Tips
    Contact us- https://myseokhazana.com

    ReplyDelete
  91. I have to search sites with relevant information on given topic and provide them to teacher our opinion and the article.
    data analytics course malaysia

    ReplyDelete
  92. I am impressed by the information that you have on this blog. It shows how well you understand this subject.

    ReplyDelete
  93. thanks for ur valuable information,keep going touch with us

    Scaffolding dealers in chennai

    ReplyDelete
  94. thanks for your details it's very useful and amazing.your article is very nice and excellentweb design company in velachery

    ReplyDelete
  95. thanks for your information really good and very nice web design company in velachery

    ReplyDelete
  96. Its really an Excellent post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog. Thanks for sharing....

    software Providers
    erp software
    crm software
    best software company in chennai
    software company in india
    Top software company in chennai

    ReplyDelete
  97. It's really nice and meanful. it's really cool blog.you have really helped lots of people who visit blog and provide them useful information.
    data science course

    ReplyDelete
  98. Great collection and thanks for sharing this info with us. Waiting for more like this.web design company in velachery

    ReplyDelete
  99. professional bridal makeup artist in chennai Style Specializes in beauty bridal makeup and makes assured that individual bride should look like a princess.

    best bridal makeup artist in chennai

    ReplyDelete
  100. Great Article. This Blog Contain Good information about ERP Software. Thanks For sharing this blog. Can you please do more articles like this blog.


    best catering services in chennai
    top catering services in chennai
    corporate catering services in chennai
    taste catering services in chennai
    veg Catering services in chennai

    ReplyDelete
  101. Thanks for sharing an informative blog keep rocking bring more details.I like the helpful info you provide in your articles. I’ll bookmark your weblog and check again here regularly. I am quite sure I will learn much new stuff right here! Good luck for the next!
    Web Designing Training Institute in Chennai | Web Designing courses in Chennai
    Mobile Application Development Courses in chennai
    Data Science Training in Chennai | Data Science courses in Chennai

    ReplyDelete
  102. Clinical sas training in chennai | SAS Training course chennai
    I have to voice my passion for your kindness giving support to those people that should have guidance on this important matter.

    ReplyDelete