PDA

View Full Version : XML ใน HI5 มีรายชื่อเพื่อนซ่อนอยู่ / Perl Parse XML



lordbsd
30-04-2008, 12:08 AM
ใน hi5 แม้ว่าเราจะอ่านข้อมูลเขาไม่ได้เลย (เพราะเขายังไม่ได้รับเป็นเพื่อน)
แต่เราก็สามารถรู้อะไรนิดๆหน่อยๆได้ อิอิ


**Hidden Content: Check the thread to see hidden data.**


ต่อมาคือการใช้ภาษา Perl อ่าน XML เล็กๆน้อยๆ
สมมติว่าเป็นไฟล์จาก profile/foaf/40176632 ละกัน
ผมดาวโหลดและเซฟเป็น 40176632.xml แล้ว

[code]
use XML::Simple;
use Data::Dumper;

### ForceArray คือทำให้ทุก element ต้องเป็น array (สำคัญนะ)
$a = $xml->XMLin("40176632.xml",ForceArray => qr/s/);

### Dump ออกมาเป็น text
# print Dumper($a);

### พิมพ์ข้อมูลส่วนตัวนิดหน่อย
print $a->{'foaf:Person'}[0]->{'foaf:nick'};
print "\n";
print $a->{'foaf:Person'}[0]->{'foaf:img'}->{'rdf:resource'};
print "\n";
print $a->{'foaf:Person'}[0]->{'foaf:surName'}[0];
print "\n";
print $a->{'foaf:Person'}[0]->{'foaf:givenName'};
print "\n";
print $a->{'foaf:Person'}[0]->{'foaf:gender'};
print "\n";
print $a->{'foaf:Person'}[0]->{'foaf:birthday'};
print "\n";
print $a->{'foaf:Person'}[0]->{'foaf:knows'}[0]->{'foaf:Person'}[0]->{'rdfs:seeAlso'}[0]->{'rdf:resource'};
print "\n";
print $a->{'foaf:Person'}[0]->{'foaf:knows'}[0]->{'foaf:Person'}[0]->{'foaf:nick'};
print "\n";
print $a->{'foaf:Person'}[0]->{'foaf:knows'}[1]->{'foaf:Person'}[0]->{'rdfs:seeAlso'}[0]->{'rdf:resource'};
print "\n";
print $a->{'foaf:Person'}[0]->{'foaf:knows'}[1]->{'foaf:Person'}[0]->{'foaf:nick'};
print "\n";

#### โอเค โค้ดนี้ อาจต้องทำความเข้าใจสักนิดนึงนะ แต่ก็เป็นการเริ่มต้นที่ดี
### อันนี้จะวนรอบ พิมพ์รายชื่อเพื่อน และ url ทั้งหมด อิอิ
@b= @{$a->{'foaf:Person'}[0]->{'foaf:knows'}};
foreach $c (@b) {