AntonLV 8 лет назад
Родитель
Сommit
09611029fa
1 измененных файлов с 20 добавлено и 4 удалено
  1. 20 4
      inc/classes/BxDolXmlParser.php

+ 20 - 4
inc/classes/BxDolXmlParser.php

@@ -113,10 +113,24 @@ class BxDolXmlParser extends BxDolFactory implements iBxDolSingleton
     }
 
     /**
-     * Gets the values of the given tag.
+     * Gets the values of the given tag with some attribute. 'name' is used as default attribute.
+     * 
+     * Usage:
+     * Input:
+     * 		<string name="string1"><![CDATA[value1]]></string>
+     * 		<string name="string2"><![CDATA[value2]]></string>
+     * 		<string name="string3"><![CDATA[value3]]></string>
+     * Output:
+     * 		array(
+     * 			'string1' => 'value1',
+     * 			'string2' => 'value2',
+     * 			'string3' => 'value3'
+     * 		)
      */
-    function getValues($sXmlContent, $sXmlTagName)
+    function getValues($sXmlContent, $sXmlTagName, $sXmlAttrName = 'name')
     {
+        $sXmlAttrName = strtoupper($sXmlAttrName);
+
         $aValues = $aIndexes = array();
         $rParser = xml_parser_create("UTF-8");
         xml_parse_into_struct($rParser, $sXmlContent, $aValues, $aIndexes);
@@ -127,8 +141,10 @@ class BxDolXmlParser extends BxDolFactory implements iBxDolSingleton
 
         $aReturnValues = array();
         foreach($aTagIndexes as $iTagIndex) {
-            $aReturnValues[$aValues[$iTagIndex]['attributes']['NAME']] =
-                isset($aValues[$iTagIndex]['value']) ? $aValues[$iTagIndex]['value'] : NULL;
+            if(!isset($aValues[$iTagIndex]['attributes'][$sXmlAttrName]))
+                continue;
+
+            $aReturnValues[$aValues[$iTagIndex]['attributes'][$sXmlAttrName]] = isset($aValues[$iTagIndex]['value']) ? $aValues[$iTagIndex]['value'] : NULL;
         }
         return $aReturnValues;
     }