function ViewsDataExportExporterXML::array_to_xml in Views data export 7.4
1 call to ViewsDataExportExporterXML::array_to_xml()
- ViewsDataExportExporterXML::add_row in exporters/
views_data_export_exporter_xml.inc - Add a single row to the export file.
File
- exporters/
views_data_export_exporter_xml.inc, line 216
Class
- ViewsDataExportExporterXML
- Webform exporter for creating XML files.
Code
function array_to_xml(&$writer, $array, &$file_handle, $field_titles) {
$key_open = false;
foreach ($array as $key => $value) {
// Ensure we are writing a valid XML tag name.
$clean_tag = $this
->_clean_tag_from_key($key, $field_titles);
// It's a parent node - open it and recurse to render the children.
if (is_array($value)) {
// Open a parent key.
$writer
->startElement($clean_tag);
$key_open = true;
// Recursive call, to render children.
$this
->array_to_xml($writer, $value, $file_handle, $field_titles);
}
else {
// If it contains valid XML ready for export, don't encode it.
if (in_array($key, $this->options['no_entity_encode'], TRUE)) {
// We want to write the raw value.
$value_to_write = $value;
// Open the tag.
$writer
->startElement($clean_tag);
// Write the data raw, as is.
$writer
->writeRaw($value_to_write);
// Close the tag.
$writer
->endElement();
}
else {
if (in_array($key, $this->options['cdata_wrapper'], TRUE)) {
// We want to write the raw value.
$value_to_write = $value;
// Open the tag.
$writer
->startElement($clean_tag);
// Write the data within CDATA tags.
$writer
->writeCData($value_to_write);
// Close the tag.
$writer
->endElement();
}
else {
// Write normal element to the file, encoding special characters.
$value_to_write = htmlspecialchars($value);
// Write the tag & contents.
$writer
->writeElement($clean_tag, $value_to_write);
}
}
}
// Close the open parent key.
if ($key_open) {
$writer
->endElement();
$key_open = false;
}
}
}