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']] =
94 isset($aValues[$iTagIndex][
'value']) ? $aValues[$iTagIndex][
'value'] : NULL;
96 return $aReturnValues;
102 function setValues($sXmlContent, $sXmlTagName, $aKeyValues)
105 xml_parse_into_struct($rParser, $sXmlContent, $aValues, $aIndexes);
106 xml_parser_free($rParser);
108 $aTagIndexes = $aIndexes[strtoupper($sXmlTagName)];
109 if(count($aTagIndexes) == 0)
return $this->
getContent();
110 foreach($aTagIndexes
as $iTagIndex)
111 foreach($aKeyValues
as $sKey => $sValue)
112 if($aValues[$iTagIndex][
'attributes'][
'KEY'] == $sKey) {
113 $aValues[$iTagIndex][
'value'] = $sValue;
122 function addValues($sXmlContent, $sXmlTagName, $aKeyValues)
125 xml_parse_into_struct($rParser, $sXmlContent, $aValues, $aIndexes);
126 xml_parser_free($rParser);
128 $aTagIndexes = $aIndexes[strtoupper($sXmlTagName)];
129 $iLastTagIndex = $aTagIndexes[count($aTagIndexes) - 1];
130 $iAddsCount = count($aKeyValues);
131 $iLevel = $aValues[$iLastTagIndex][
"level"];
133 for($i=count($aValues)-1; $i>$iLastTagIndex; $i--)
134 $aValues[$i+$iAddsCount] = $aValues[$i];
137 foreach($aKeyValues
as $sKey => $sValue) {
139 $aValues[$i] = Array(
"tag" => $sXmlTagName,
"type" =>
"complete",
"level" => $iLevel,
"attributes" => Array(
"KEY" => $sKey),
"value" => $sValue);
150 foreach($aValues
as $aValue) {
151 $sTagName = strtolower($aValue[
'tag']);
152 switch($aValue[
'type']) {
159 if(isset($aValue[
'attributes']))
160 foreach($aValue[
'attributes']
as $sAttrKey => $sAttrValue)
161 $sContent .=
" " . strtolower($sAttrKey) .
"=\"" . $sAttrValue .
"\"";
162 $sContent .= isset($aValue[
'value']) ?
"><![CDATA[" . $aValue[
'value'] .
"]]></" . $sTagName .
">" :
" />";
179 return $oXml->getAttribute($sXmlContent, $sXmlTag, $sXmlAttribute);
185 return $oXml->getAttributes($sXmlContent, $sXmlTagName, $sXmlTagIndex);
188 function xmlGetTags($sXmlContent, $sXmlTagName, $iXmlTagIndex = -1)
191 return $oXml->getTags($sXmlContent, $sXmlTagName, $iXmlTagIndex = -1);
196 $aValues =
$oXml->getValues($sXmlContent, $sXmlTagName);
202 return $oXml->getValues($sXmlContent, $sXmlTagName);
207 $aKeyValues = Array(
$sName => $sValue);
208 return $oXml->setValues($sXmlContent, $sXmlTagName, $aKeyValues);
213 return $oXml->setValues($sXmlContent, $sXmlTagName, $aKeyValues);
218 return $oXml->addValues($sXmlContent, $sXmlTagName, $aKeyValues);