{"id":171,"date":"2018-10-11T15:12:44","date_gmt":"2018-10-11T15:12:44","guid":{"rendered":"https:\/\/help.bmtmicro.com\/vendors\/?page_id=171"},"modified":"2023-01-24T18:04:11","modified_gmt":"2023-01-24T18:04:11","slug":"example-php-to-parse-xml","status":"publish","type":"page","link":"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/","title":{"rendered":"Example PHP to Parse XML"},"content":{"rendered":"<p style=\"font-size: 14px; letter-spacing: .7px;\"><a href=\"https:\/\/help.bmtmicro.com\/vendors\/xml-help\/\">\u27f5 Back to XML Help<\/a><\/p>\n<p>The PHP code below is an example script for parsing the XML request sent for generating registration keys.<\/p>\n<pre style=\"white-space: pre; margin: 2em 0 2em 0; padding: 10px; overflow: auto; background-color: #f4f9ff; border: 1px solid #dbdef2; font-size: 110%; display: block;\">\r\n&lt?php\r\nclass BMTXMLParser {\r\n   var $tag_name;\r\n   var $tag_data;\r\n   var $tag_prev_name;\r\n   var $tag_parent_name;\r\n   function BMTXMLParser () {\r\n       $tag_name = NULL;\r\n       $tag_data = array ();\r\n       $tag_prev_name = NULL;\r\n       $tag_parent_name = NULL;\r\n       }\r\n   function startElement ($parser, $name, $attrs) {\r\n      if ($this->tag_name != NULL) {\r\n         $this->tag_parent_name = $this->tag_name;\r\n         }                \r\n      $this->tag_name = $name;\r\n      }\r\n   function endElement ($parser, $name) {\r\n      if ($this->tag_name == NULL) {\r\n         $this->tag_parent_name = NULL;\r\n         }\r\n      $this->tag_name = NULL;\r\n      $this->tag_prev_name = NULL;\r\n      }\r\n   function characterData ($parser, $data) {\r\n      if ($this->tag_name == $this->tag_prev_name) {\r\n         $data = $this->tag_data[$this->tag_name] . $data;\r\n         }\r\n      $this->tag_data[$this->tag_name] = $data;\r\n      if ($this->tag_parent_name != NULL) {\r\n         $this->tag_data[$this->tag_parent_name . \".\" . $this->tag_name] = $data;\r\n         }\r\n      $this->tag_prev_name = $this->tag_name;\r\n      }\r\n   function parse ($data) {\r\n      if (!function_exists ('xml_parser_create')) {\r\n         $this->tag_data['error'] = 'php-xml is not installed on the server';\r\n         return (false);\r\n         }\r\n      $xml_parser = xml_parser_create ();\r\n      xml_set_object ($xml_parser, $this);                        \r\n      xml_parser_set_option ($xml_parser, XML_OPTION_CASE_FOLDING, false);\r\n      xml_set_element_handler ($xml_parser, \"startElement\", \"endElement\");\r\n      xml_set_character_data_handler ($xml_parser, \"characterData\");\r\n      $success = xml_parse ($xml_parser, $data, true);\r\n      if (!$success) {\r\n          $this->tag_data['error'] =  sprintf (\"XML error: %s at line %d\", xml_error_string(xml_get_error_code ($xml_parser)), xml_get_current_line_number ($xml_parser));\r\n          }\r\n      xml_parser_free ($xml_parser);\r\n      return ($success);\r\n      }\r\n   function getElement ($tag) {\r\n      return ($this->tag_data[$tag]);\r\n      }\r\n   }\r\n\r\nheader (\"Content-type: text\/xml; charset=utf-8\");\r\necho '&lt?xml version=\"1.0\" encoding=\"utf-8\"?>';\r\necho '&ltresponse>';\r\necho '&ltregistrationkey>';\r\n$bmtparser = new BMTXMLParser ();\r\n$postdata = file_get_contents (\"php:\/\/input\"); \r\nif ($bmtparser->parse ($postdata)) {   \r\n   # keycount is normally 1. However, if the product option \"Use one\r\n   # key\" in the vendor area has been unchecked, BMT Micro expects\r\n   # you to send back as many keys as the number of items (quantity)\r\n   # ordered. The variable keycount represents the number of keys\r\n   # that the system expects to receive back from you.\r\n   $keycount = $bmtparser->getElement ('keycount');\r\n   for ($key = 1; $key &lt= $keycount; $key++) {\r\n      $keydata = 'The registration key for ' . $bmtparser->getElement ('registername') . ' is ' . $key;\r\n      echo '&ltkeydata>' . $keydata . '&lt\/keydata>';\r\n      }\r\n   }\r\nelse {\r\n   echo '&lterrorcode>1&lt\/errorcode>';\r\n   echo '&lterrormessage>' . $bmtparser->getElement ('error') . '&lt\/errormessage>';\r\n   }\r\necho '&lt\/registrationkey>';\r\necho '&lt\/response>';\r\n?>\r\n<\/pre>\n<p><\/br><\/p>\n<p style=\"font-size: 14px; letter-spacing: .7px;\"><a href=\"https:\/\/help.bmtmicro.com\/vendors\/xml-help\/\">\u27f5 Back to XML Help<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u27f5 Back to XML Help The PHP code below is an example script for parsing the XML request sent for generating registration keys. &#038;lt?php class BMTXMLParser { var $tag_name; var $tag_data; var $tag_prev_name; var $tag_parent_name; function BMTXMLParser () { $tag_name = NULL; $tag_data = array (); $tag_prev_name = NULL; $tag_parent_name [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-171","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Example PHP to Parse XML - BMT Micro, Inc. Vendor FAQ\/Help<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:locale\" content=\"en_US\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:type\" content=\"article\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:title\" content=\"Example PHP to Parse XML - BMT Micro, Inc. Vendor FAQ\/Help\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:description\" content=\"\u27f5 Back to XML Help The PHP code below is an example script for parsing the XML request sent for generating registration keys. &amp;lt?php class BMTXMLParser { var $tag_name; var $tag_data; var $tag_prev_name; var $tag_parent_name; function BMTXMLParser () { $tag_name = NULL; $tag_data = array (); $tag_prev_name = NULL; $tag_parent_name [&hellip;]\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:url\" content=\"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:site_name\" content=\"BMT Micro, Inc. Vendor FAQ\/Help\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/bmt.micro\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-24T18:04:11+00:00\" class=\"yoast-seo-meta-tag\" \/>\n<meta property=\"og:image\" content=\"https:\/\/help.bmtmicro.com\/vendors\/wp-content\/uploads\/2019\/01\/bmtmicro-logo-600x315.jpg\" class=\"yoast-seo-meta-tag\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" class=\"yoast-seo-meta-tag\" \/>\n\t<meta property=\"og:image:height\" content=\"315\" class=\"yoast-seo-meta-tag\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" class=\"yoast-seo-meta-tag\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" class=\"yoast-seo-meta-tag\" \/>\n<meta name=\"twitter:site\" content=\"@BMTMicro\" class=\"yoast-seo-meta-tag\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" class=\"yoast-seo-meta-tag\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" class=\"yoast-seo-meta-tag\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/\",\"url\":\"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/\",\"name\":\"Example PHP to Parse XML - BMT Micro, Inc. Vendor FAQ\/Help\",\"isPartOf\":{\"@id\":\"https:\/\/help.bmtmicro.com\/vendors\/#website\"},\"datePublished\":\"2018-10-11T15:12:44+00:00\",\"dateModified\":\"2023-01-24T18:04:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/help.bmtmicro.com\/vendors\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Example PHP to Parse XML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/help.bmtmicro.com\/vendors\/#website\",\"url\":\"https:\/\/help.bmtmicro.com\/vendors\/\",\"name\":\"BMT Micro, Inc. Vendor FAQ\/Help\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/help.bmtmicro.com\/vendors\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Example PHP to Parse XML - BMT Micro, Inc. Vendor FAQ\/Help","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/","og_locale":"en_US","og_type":"article","og_title":"Example PHP to Parse XML - BMT Micro, Inc. Vendor FAQ\/Help","og_description":"\u27f5 Back to XML Help The PHP code below is an example script for parsing the XML request sent for generating registration keys. &lt?php class BMTXMLParser { var $tag_name; var $tag_data; var $tag_prev_name; var $tag_parent_name; function BMTXMLParser () { $tag_name = NULL; $tag_data = array (); $tag_prev_name = NULL; $tag_parent_name [&hellip;]","og_url":"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/","og_site_name":"BMT Micro, Inc. Vendor FAQ\/Help","article_publisher":"https:\/\/www.facebook.com\/bmt.micro","article_modified_time":"2023-01-24T18:04:11+00:00","og_image":[{"width":600,"height":315,"url":"https:\/\/help.bmtmicro.com\/vendors\/wp-content\/uploads\/2019\/01\/bmtmicro-logo-600x315.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@BMTMicro","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/","url":"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/","name":"Example PHP to Parse XML - BMT Micro, Inc. Vendor FAQ\/Help","isPartOf":{"@id":"https:\/\/help.bmtmicro.com\/vendors\/#website"},"datePublished":"2018-10-11T15:12:44+00:00","dateModified":"2023-01-24T18:04:11+00:00","breadcrumb":{"@id":"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/help.bmtmicro.com\/vendors\/example-php-to-parse-xml\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/help.bmtmicro.com\/vendors\/"},{"@type":"ListItem","position":2,"name":"Example PHP to Parse XML"}]},{"@type":"WebSite","@id":"https:\/\/help.bmtmicro.com\/vendors\/#website","url":"https:\/\/help.bmtmicro.com\/vendors\/","name":"BMT Micro, Inc. Vendor FAQ\/Help","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/help.bmtmicro.com\/vendors\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/help.bmtmicro.com\/vendors\/wp-json\/wp\/v2\/pages\/171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.bmtmicro.com\/vendors\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/help.bmtmicro.com\/vendors\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/help.bmtmicro.com\/vendors\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/help.bmtmicro.com\/vendors\/wp-json\/wp\/v2\/comments?post=171"}],"version-history":[{"count":37,"href":"https:\/\/help.bmtmicro.com\/vendors\/wp-json\/wp\/v2\/pages\/171\/revisions"}],"predecessor-version":[{"id":1778,"href":"https:\/\/help.bmtmicro.com\/vendors\/wp-json\/wp\/v2\/pages\/171\/revisions\/1778"}],"wp:attachment":[{"href":"https:\/\/help.bmtmicro.com\/vendors\/wp-json\/wp\/v2\/media?parent=171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}