Re: Reading Notes field in gedcom files
[email protected] (Bill Anderson) Tue, 27 Apr 2010 20:12:30 -0500
| Newsgroups | perl.gedcom |
|---|---|
| Message-ID | <[email protected]> |
Here is the script, modified to give the results expected. Notice the
use of resolve_xrefs and ref.
#!/bin/perl -w
use strict;
use Gedcom;
my $ged = Gedcom->new(shift);
$ged->resolve_xrefs;
for my $i ( $ged->individuals )
{
for my $n ( $i->note )
{
print "========================================\n";
print $i->name, "\n";
if (ref $n)
{
print $n->get_value, "\n";
}
else
{
print "$n\n";
}
#print "========================================\n";
}
}
On 4/26/2010 6:25 PM, Bill Anderson wrote:
> I believe your script and the GEDCOM module are working correctly, but
> you do not get the results you expect because of the way your GEDCOM
> file is constructed.
>
> To illustrate, consider two sample files. The first is at
> http://www.ged-gen.com/download/lincoln.ged
>
> If you run your script against this file, you will see what you expect.
>
> The second is at http://www.genealogyforum.com/gedcom/gedcom1/ged1.ged
>
> When running your script against the second GEDCOM file, you will get
> the cross reference numbers you described below.
>
> If the GEDCOM file includes the note text in the tag value, as in the
> first file, you will get what you are looking for.
>
> If the GEDCOM file includes a cross reference to a note record, you will
> get the reference numbers.
>
> You need to add some tests to your script to see if you are getting note
> text, or a cross reference. If the latter, you need some code to fetch
> the note text from the separate note record.
>
>
>
> On 4/26/2010 3:41 PM, [email protected] wrote:
>
>> Hoping I can get this question answered here.
>>
>> I have been trying to use perl to parse gedcom files and have not had much luck.
>> My main goal is to get it to show me a list of people and then the contents of the notes section of their record. My script is based on the example code found here:
>> http://search.cpan.org/dist/Gedcom/lib/Gedcom.pm
>>
>> The only results I can seem to get back is the persons name and the reference number of the notes associated with that person.
>>
>> I appreciate any help on this matter
>>
>> Thanks !
>>
>> Script follows:
>>
>>
>>
>> #!/bin/perl -w
>>
>> use strict;
>>
>> use Gedcom;
>>
>> my $ged = Gedcom->new(shift);
>>
>> for my $i ($ged->individuals)
>>
>> {
>>
>> for my $n ($i->get_value("note"))
>>
>> {
>>
>>
>> print "========================================\n";
>>
>> print $i->name, "\n";
>>
>> print $i->note, "\n";
>>
>> #print "========================================\n";
>>
>> }
>>
>> }
>>
>>
>>
>>
>>