You are here

function ARC_rdfxml_parser::handle_open_6 in Taxonomy import/export via XML 5.2

Same name and namespace in other branches
  1. 5 arc/ARC_rdfxml_parser.php \ARC_rdfxml_parser::handle_open_6()
  2. 6.2 arc/ARC_rdfxml_parser.php \ARC_rdfxml_parser::handle_open_6()
  3. 6 arc/ARC_rdfxml_parser.php \ARC_rdfxml_parser::handle_open_6()
1 call to ARC_rdfxml_parser::handle_open_6()
ARC_rdfxml_parser::handle_open in arc/ARC_rdfxml_parser.php

File

arc/ARC_rdfxml_parser.php, line 669

Class

ARC_rdfxml_parser

Code

function handle_open_6($tag, $attrs) {
  $cur_s =& $this->subjs[$this->s_count - 1];
  $data = $cur_s["o_xml_data"];
  $xml_level = $cur_s["o_xml_level"];
  $decl_nss = $cur_s["declared_namespaces"];
  $tag_parts = explode(" ", $tag);
  if (count($tag_parts) == 1) {

    /* no qname */
    $data .= '<' . $tag;
  }
  else {
    $ns_uri = $tag_parts[0];
    $local_name = $tag_parts[1];
    $nsp = $this->nsps[$ns_uri];
    $data .= strlen($nsp) ? '<' . $nsp . ":" . $local_name : '<' . $local_name;

    /* declare ns */
    if (!@$decl_nss[$nsp . "=" . $ns_uri]) {
      $data .= strlen($nsp) ? ' xmlns:' . $nsp . '="' . $ns_uri . '"' : ' xmlns="' . $ns_uri . '"';
      $decl_nss[$nsp . "=" . $ns_uri] = true;
      $cur_s["declared_namespaces"] = $decl_nss;
    }
  }
  foreach ($attrs as $k => $v) {
    if (strpos($k, " ")) {

      /* qualified attr */
      $attr_parts = explode(" ", $k);
      $a_ns_uri = $attr_parts[0];
      $a_local_name = $attr_parts[1];
      $a_nsp = $this->nsps[$a_ns_uri];
      $data .= strlen($a_nsp) ? ' ' . $a_nsp . ':' . $a_local_name . '="' . $v . '"' : ' ' . $a_local_name . '="' . $v . '"';
    }
    else {

      /* unqualified attr */
      $data .= ' ' . $k . '="' . $v . '"';
    }
  }
  $data .= '>';
  $cur_s["o_xml_data"] = $data;
  $cur_s["o_xml_level"] = $xml_level + 1;
  if (str_replace(" ", "", $tag) == $cur_s["cur_p"]) {

    /* container prop in XML */
    $cur_s["p_xml_literal_level"] = $cur_s["p_xml_literal_level"] + 1;
  }
}