15 return xml_parser_create(
"UTF-8");
24 xml_parse_into_struct($rParser, $sXmlContent, $aValues, $aIndexes);
25 xml_parser_free($rParser);
27 $aFieldIndex = $aIndexes[strtoupper($sXmlTag)][0];
28 return $aValues[$aFieldIndex][
'attributes'][strtoupper($sXmlAttribute)];
37 xml_parse_into_struct($rParser, $sXmlContent, $aValues, $aIndexes);
38 xml_parser_free($rParser);
44 if($sXmlTagIndex == -1) {
46 $aTagIndexes = $aIndexes[strtoupper($sXmlTagName)];
47 if(count($aTagIndexes) <= 0)
return NULL;
48 foreach($aTagIndexes
as $iTagIndex)
49 $aResult[] = $aValues[$iTagIndex][
'attributes'];
52 $iTagIndex = $aIndexes[strtoupper($sXmlTagName)][$sXmlTagIndex];
53 return $aValues[$iTagIndex][
'attributes'];
60 function getTags($sXmlContent, $sXmlTagName, $iXmlTagIndex = -1)
63 xml_parse_into_struct($rParser, $sXmlContent, $aValues, $aIndexes);
64 xml_parser_free($rParser);
67 if($iXmlTagIndex == -1) {
69 $aTagIndexes = $aIndexes[strtoupper($sXmlTagName)];
70 if(count($aTagIndexes) <= 0)
return NULL;
71 foreach($aTagIndexes
as $iTagIndex)
75 $iTagIndex = $aIndexes[strtoupper($sXmlTagName)][$iXmlTagIndex];
76 return $aValues[$iTagIndex];
86 xml_parse_into_struct($rParser, $sXmlContent, $aValues, $aIndexes);
87 xml_parser_free($rParser);
89 $aTagIndexes = $aIndexes[strtoupper($sXmlTagName)];
90 $aTagIndexes = isset($aTagIndexes) ? $aTagIndexes : array();
91 $aReturnValues = array();
92 foreach($aTagIndexes
as $iTagIndex)
93 $aReturnValues[$aValues[$iTagIndex][
'attributes'][
'KEY']] = $aValues[$iTagIndex][
'value'];
95 return $aReturnValues;
101 function setValues($sXmlContent, $sXmlTagName, $aKeyValues)
104 xml_parse_into_struct($rParser, $sXmlContent, $aValues, $aIndexes);
105 xml_parser_free($rParser);
107 $aTagIndexes = $aIndexes[strtoupper($sXmlTagName)];
108 if(count($aTagIndexes) == 0)
return $this->
getContent();
109 foreach($aTagIndexes
as $iTagIndex)
110 foreach($aKeyValues
as $sKey => $sValue)
111 if($aValues[$iTagIndex][
'attributes'][
'KEY'] == $sKey) {
112 $aValues[$iTagIndex][
'value'] = $sValue;
121 function addValues($sXmlContent, $sXmlTagName, $aKeyValues)
124 xml_parse_into_struct($rParser, $sXmlContent, $aValues, $aIndexes);
125 xml_parser_free($rParser);
127 $aTagIndexes = $aIndexes[strtoupper($sXmlTagName)];
128 $iLastTagIndex = $aTagIndexes[count($aTagIndexes) - 1];
129 $iAddsCount = count($aKeyValues);
130 $iLevel = $aValues[$iLastTagIndex][
"level"];
132 for($i=count($aValues)-1; $i>$iLastTagIndex; $i--)
133 $aValues[$i+$iAddsCount] = $aValues[$i];
136 foreach($aKeyValues
as $sKey => $sValue) {
138 $aValues[$i] = Array(
"tag" => $sXmlTagName,
"type" =>
"complete",
"level" => $iLevel,
"attributes" => Array(
"KEY" => $sKey),
"value" => $sValue);
149 foreach($aValues
as $aValue) {
150 $sTagName = strtolower($aValue[
'tag']);
151 switch($aValue[
'type']) {
158 if(isset($aValue[
'attributes']))
159 foreach($aValue[
'attributes']
as $sAttrKey => $sAttrValue)
160 $sContent .=
" " . strtolower($sAttrKey) .
"=\"" . $sAttrValue .
"\"";
161 $sContent .= isset($aValue[
'value']) ?
"><![CDATA[" . $aValue[
'value'] .
"]]></" . $sTagName .
">" :
" />";