0

私は非常に大きなxmlを持っています。次のようなフィールドがあります

<SegrigatedQualification>
    <EducationSplit>
      <University><![CDATA[G. H. Raisoni College of Engineering]]></University>
      <Degree><![CDATA[Engineering]]></Degree>
      <Year><![CDATA[2011]]></Year>
    </EducationSplit>
    <EducationSplit>
      <University><![CDATA[G. H. Raisoni College of Engineering]]></University>
      <Degree><![CDATA[Engineering]]></Degree>
      <Year><![CDATA[2010]]></Year>
    </EducationSplit>
    <EducationSplit>
      <University><![CDATA[G. H. Raisoni College of Engineering]]></University>
      <Degree><![CDATA[Engineering]]></Degree>
      <Year><![CDATA[2009]]></Year>
    </EducationSplit>
    <EducationSplit>
      <University><![CDATA[Diploma  I.T]]></University>
      <Degree><![CDATA[Diploma  I.T]]></Degree>
      <Year><![CDATA[2008]]></Year>
    </EducationSplit>
    <EducationSplit>
      <University><![CDATA[Nasik Board]]></University>
      <Degree><![CDATA[S.S.C]]></Degree>
      <Year><![CDATA[2003]]></Year>
    </EducationSplit>
  </SegrigatedQualification>

フィールドをマップしてテーブルを作成し、すべてのxmlの情報をテーブルに保存したい。問題は、SagrigratedQualificaton 列を作成する場合、教育分割または大学、学位、年を 1 つの行に格納するにはどうすればよいかということです。別々の列を作成すると、大学、学位などの情報が2行以上になり、テーブルが冗長になります。XMLをテーブルにマップする最良の方法は何ですか?

4

3 に答える 3

0

リレーショナルデータベース...各xml構造は、異なるテーブルの異なるレコードである必要があります。または、単純にして、これをTEXTまたはBLOBフィールドに格納します。

于 2012-12-21T06:26:28.337 に答える
0

MagicParser のようなものを使用してデータを抽出し、それを独自のテーブルとフィールドに簡単にマップできます。

于 2012-12-21T06:31:28.707 に答える
0
<?php
require("MagicParser.php");

function myRecordHandler($record){


// This is where you write your code to process each record, such as loading a database

// The following code will print out each field in your sample data:
print $record["EDUCATIONSPLIT"];
print $record["UNIVERSITY"];
print $record["DEGREE"];
print $record["YEAR"];
}

$data = ""; // string variable contianing the data to parse

MagicParser_parse("string://".$data,"myRecordHandler","xml|SEGRIGATEDQUALIFICATION/EDUCATIONSPLIT/");
?>

注: 実際のファイルからロードする場合は、単純に $data 参照を削除して、次のように MagicParser_parse を作成します。

MagicParser_parse("your-xml-file.xml".$data,"myRecordHandler","xml|SEGRIGATEDQUALIFICATION/EDUCATIONSPLIT/");
于 2012-12-21T06:55:57.077 に答える