SM-Finder-Logo        
herz Karte Kalender Suche Bookmarks Experte FAQ

Module

Download

SMFinder_XML_importParseAdr

Wird verwendet von:
SMFinder_Main
SMFinder_XML_import

adr existiert im XML nur als Unterelement von address, kann dort aber mehrfach enthalten sein und wird daher als Array $adrXML vorsortiert übergeben. Die einzelnen Adressen werden dann nacheinander in ihre Elemente zerlegt.

Das Element tel kann mehrfach vorkommen; alle Elemente dieses Typs werden zu Beginn aus dem $adrXML[$n] extrahiert.

Anschließend wird nacheinander nach den Unterelementen von adr gesucht. Da diese in der Regel nur einfach vorkommen dürfen, ist nur der erste gefundene Eintrag $tags[0] relevant.

Das Element email darf mehrfach vorkommen, so dass das Array aller gefundenen Mailadressen aus dem XML direkt in das Ergebnisarray $adr[$n]['email'] übergeben werden kann.

Auch das Element tel, das zuvor schon separiert wurde, darf mehrfach vorkommen, hierbei muss allerdings jeweils unterschieden werden, ob es sich um eine Telefonnummer oder Telefaxnummer handelt.

<?php /* published under GPL www.gnu.org/licenses/gpl.html */
function SMFinder_XML_importParseAdr($adrXML){
  include_once("SMFinder_XML_findAllElements.php");
  include_once("SMFinder_XML_extractTag.php");
  include_once("SMFinder_XML_checkType.php");
  include_once("SMFinder_Geo_getGeo.php");
  $nn=-1;
#      echo "<textarea cols='60' rows='20'>".$adrXML[0]."</textarea>";
  for ($n=0;$n<count($adrXML);$n++){
    if (strlen($adrXML[$n])>11){
      $nn++;
      list($tel,$NoTel,$adrXML[$n]) = SMFinder_XML_findAllElements($adrXML[$n],"tel");
      list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"desc");
      $adr[$nn]['desc']=$tags[0];
      list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"pobox");
      $adr[$nn]['pobox']=$tags[0];
      list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"street");
      $adr[$nn]['street']=$tags[0];
      list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"city");
      $adr[$nn]['city']=$tags[0];
      list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"region");
      $adr[$nn]['region']=$tags[0];
      list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"pcode");
      $adr[$nn]['pcode']=$tags[0];
      list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"country");
      $adr[$nn]['country']=$tags[0];
      list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"lat");
      $adr[$nn]['geoLat']=$tags[0];
      list($tags,$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"lon");
      $adr[$nn]['geoLon']=$tags[0];
      list($adr[$nn]['email'],$NoTags)=SMFinder_XML_extractTag($adrXML[$n],"email");
      list($lat,$lon,$PLZ,$City) = #
	SMFinder_Geo_getGeo($adr[$nn]['pcode'],$adr[$nn]['city']);
      if (empty($adr[$nn]['geoLat'])){$adr[$nn]['geoLat']=$lat;}
      if (empty($adr[$nn]['geoLon'])){$adr[$nn]['geoLon']=$lon;}
      if (empty($adr[$nn]['country']) AND strlen($adr[$nn]['pcode'])==5){
	$adr[$nn]['country']="Deutschland";
      }
      $i=-1;
      $j=-1;
      for ($t=0;$t<$NoTel;$t++){ //2009-01-27 $NoTags -> $NoTel
	if (SMFinder_XML_checkType($tel[$t],"PHONE")){
	  $i++;
	  list($tags,$NoTags)=SMFinder_XML_extractTag($tel[$t],"tel");
	  $adr[$nn]['fon'][$i]=$tags[0];
	}else if (SMFinder_XML_checkType($tel[$t],"FAX")){
	  $j++;
	  list($tags,$NoTags)=SMFinder_XML_extractTag($tel[$t],"tel");
	  $adr[$nn]['fax'][$i]=$tags[0];
	}
      } #t
    } #endif
  } #n
  if ($nn>=0){
    return $adr;
  }else{
    return NULL;
  }
}
?>

Index

Für die Funktionalität des SM-Finders sind viele kleine Tools notwendig. Alle Funktionen beginnen mit SMFinder_ um deren Ursprung zu kennzeichnen. Dem schließt sich die Funktionsgruppe, z.B. Geo_ an, gefolgt vom eigentlichen Namen, der die Aufgabe der Funktion widerspiegeln soll, z.B. PLZ2DB.

Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden.

1Makefile
2SMFinder_Admin
3SMFinder_Admin_addCategories
4SMFinder_Admin_checkAllLinks
5SMFinder_Admin_clean
6SMFinder_Admin_exportXML
7SMFinder_Admin_genMap
8SMFinder_Admin_getTimefInt
9SMFinder_Admin_importGeo
10SMFinder_Admin_sendXML2user
11SMFinder_Admin_uploadXML
12SMFinder_Config
13SMFinder_DTD
14SMFinder_Datenbanken
15SMFinder_Edit
16SMFinder_Edit_AddressFields
17SMFinder_Edit_AdrFields
18SMFinder_Edit_CatsAtrs
19SMFinder_Edit_EventFields
20SMFinder_Edit_LinkFields
21SMFinder_Edit_Modus
22SMFinder_Edit_POST
23SMFinder_Edit_PersFields
24SMFinder_Edit_genUID
25SMFinder_Elementdefinitions
26SMFinder_Geo
27SMFinder_Geo_PLZ2DB
28SMFinder_Geo_Umkreis
29SMFinder_Geo_getGeo
30SMFinder_Help
31SMFinder_Help_Download
32SMFinder_Help_FAQ
33SMFinder_Help_KategorienInfo
34SMFinder_Help_editAddress
35SMFinder_Help_editEvent
36SMFinder_Main
37SMFinder_MapDACH
38SMFinder_Menu
39SMFinder_Modules
40SMFinder_ModulesIndex
41SMFinder_Pagelayout
42SMFinder_Query_ABC
43SMFinder_Query_Calendar
44SMFinder_Query_CheckCatsAtrs
45SMFinder_Query_Map
46SMFinder_Query_Mask
47SMFinder_Query_SearchEngine
48SMFinder_Query_analyzeSearch
49SMFinder_Query_composeDates4UIDs
50SMFinder_Query_dateFormat
51SMFinder_Query_dmoz
52SMFinder_Query_expandSeries
53SMFinder_Query_find
54SMFinder_Query_getAllUID
55SMFinder_Query_getUID4CatsAtrsGeo
56SMFinder_Query_getUID4Geo
57SMFinder_Query_getUID4adr
58SMFinder_Query_getUID4fn
59SMFinder_Query_readAddress
60SMFinder_Query_readAdr
61SMFinder_Query_readBookmark
62SMFinder_Query_readEvent
63SMFinder_Query_readLink
64SMFinder_Query_readPers
65SMFinder_Query_showAddress
66SMFinder_Query_showAdr
67SMFinder_Query_showCalendar
68SMFinder_Query_showCalendarDynamic
69SMFinder_Query_showEvent
70SMFinder_Query_showEventList
71SMFinder_Query_showEventsChronological
72SMFinder_Query_showLink
73SMFinder_Query_showPers
74SMFinder_Query_showResult
75SMFinder_Query_validDate
76SMFinder_Style
77SMFinder_Write_Address
78SMFinder_Write_Adr
79SMFinder_Write_Event
80SMFinder_Write_Link
81SMFinder_Write_Pers
82SMFinder_Write_deleteEntry
83SMFinder_XML_checkType
84SMFinder_XML_export
85SMFinder_XML_extractAttribute
86SMFinder_XML_extractTag
87SMFinder_XML_findAllElements
88SMFinder_XML_import
89SMFinder_XML_importParseAddress
90SMFinder_XML_importParseAdr
91SMFinder_XML_importParseCatsAtrs
92SMFinder_XML_importParseEvent
93SMFinder_XML_importParseLink
94SMFinder_XML_importParsePerson
95SMFinder_XML_readFile
96SMallGiessen_SMFinder
97ShowCatsAtrsNice
98index
99php2txt.pl
100sm-finder-02.dtd
101testGeo
102sm-finder-02.dtd
103

Datenbanken

 

SM-Finder-Logo

Die hier zur Verfügung gestellten Informationen basieren auf dem Austauschnetzwerk des SM-Finders.
Änderungen an eurem Datensatz könnt ihr z.B. beim Arbeitskreis SM-Finder vornehmen.
Bei Fragen und Problemen schreibt bitte an: sm-finderATki-co.org
Der AK-SM-Finder ist korporatives Mitglied der BVSM e.V.

Für Aktualität und Richtigkeit der dargebotenen Infomationen kann keine Gewähr übernommen werden!

blank

blank