JENS MALMGREN I create.

Porting my blog for the second time, walk the old data part 2

This is post #14 of my series about how I port this blog from Blogengine.NET 2.5 ASPX on a Windows Server 2003 to a Linux Ubuntu server, Apache2, MySQL and PHP. A so called LAMP. The introduction to this project can be found in this blog post https://www.malmgren.nl/post/Porting-my-blog-for-the-second-time-Project-can-start.aspx.

Now it is really time to walk the old data!

My program first deletes the data in the database and then it goes on with loading the categories. Then I can call a routine Walk that I bring back from post #2 of this series.

# http://www.jens.malmgren.nl/post/Porting-my-blog-for-the-second-time-walk-the-old-data-part-2.aspx
# http://www.jens.malmgren.nl/post/Porting-my-blog-for-the-second-time-walk-the-old-data.aspx
sub Walk
{
	my ($directory) = @_;
	
	opendir my $dirHandle, $directory or die "Failed to open $directory: $!";
	my @dirItems = readdir $dirHandle;
	
	for my $dirItem (@dirItems)
	{
		if ($dirItem =~ /^(\.|\.\.)$/)
		{
			next;
		}
		if ($dirItem =~ /_vti_cnf$|themes$/)
		{
			next;
		}
		
		my $path = $directory . "/" . $dirItem;
		
		if (-f $path && $path =~ /\.xml$/i)
		{
			LoadPost($path);
		}
		if (-d $path)
		{
			Walk($path);
		}
	}
} # Walk()

Whereas I the last time printed -f this time I call a routine LoadPost. This new routine handling all the processing of a file but I make if from the source code I already worked on. The beginning of the new LoadPost subroutine looks like this:

# http://www.jens.malmgren.nl/post/Porting-my-blog-for-the-second-time-walk-the-old-data-part-2.aspx
sub LoadPost
{
	my ($filenamePost) = @_;
	print "===============================\n";
	print "========== LOAD POST ==========\n";
	print "===============================\n";
	print "File: " . $filenamePost . "\n";
	# Load a post fields
	# http://www.jens.malmgren.nl/post/Porting-my-blog-for-the-second-time-load-a-post.aspx
	#my $filenamePost = "/usr/local/bin/jensblog/App_Data/posts/6d781b81-27ab-4ecf-a4ce-df2795128f0d.xml";
	$xmldoc = $parser-≻parse_file($filenamePost);

	my $strEncoding = $xmldoc-≻encoding();
...

When I run my program it goes on and on for a long time and then after 37 posts and 113 images it stops. It came across something it cannot handle.

≺?xml version="1.0" encoding="utf-8" standalone="yes"?≻
≺post≻
  ≺author≻Admin≺/author≻
  ≺title≻141 blog posts≺/title≻
  ≺description /≻
  ≺content≻≺div class="separator"
style="text-align: left; clear: both;"≻Things are
going well with this blog. I made 141 blog posts with
this post. I learned how to handle the labels and how
to administrate the images. Today I made the QR code
for this blog. I created a couple of stickers with
the QR-image as well. Later on I might create handmade
“business cards” with the QR image
on aquarelle paper. That would be utterly cool. The
ultimate combination of art meets technology.≺/div≻
≺p≻≺img src="/media/Jens+Blog+QR.png" alt="" /≻≺/p≻≺/content≻
  ≺ispublished≻True≺/ispublished≻
  ≺isdeleted≻False≺/isdeleted≻
  ≺iscommentsenabled≻True≺/iscommentsenabled≻
  ≺pubDate≻2011-07-16 19:44:00≺/pubDate≻
  ≺lastModified≻2011-09-08 08:10:42≺/lastModified≻
  ≺raters≻0≺/raters≻
  ≺rating≻0≺/rating≻
  ≺slug≻141-blog-posts≺/slug≻
  ≺tags /≻
  ≺comments /≻
  ≺categories≻
    ≺category≻71ad1ad6-b832-419b-9466-62eb75bbe666≺/category≻
  ≺/categories≻
  ≺notifications /≻
≺/post≻

It turns out I missed <img src="/image.axd?picture=2011%2f9%2fJens+Blog+QR.png" alt="" /> entirely. When I insert an image with the built in "Insert Image" function in the old BlogEngine.NET then the links looks like this "/image.axd?picture=2011%2f9%2fJens+Blog+QR.png". So... I am back into handling images again.

So now I comment my Walk routine and load only this blog entry. Here is work to do!

# Walk('/usr/local/bin/jensblog/App_Data/posts');
LoadPost('/usr/local/bin/jensblog/App_Data/posts/8d4c8839-f196-480c-a1d7-7f0fb53b9e2f.xml');

But that is for next time.


I moved from Sweden to The Netherlands in 1995.

Here on this site, you find my creations because that is what I do. I create.