Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(602)

Unified Diff: grit/format/policy_templates/writers/xml_formatted_writer.py

Issue 1442863002: Remove contents of grit's SVN repository. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: grit/format/policy_templates/writers/xml_formatted_writer.py
===================================================================
--- grit/format/policy_templates/writers/xml_formatted_writer.py (revision 202)
+++ grit/format/policy_templates/writers/xml_formatted_writer.py (working copy)
@@ -1,91 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-
-from grit.format.policy_templates.writers import template_writer
-
-
-class XMLFormattedWriter(template_writer.TemplateWriter):
- '''Helper class for generating XML-based templates.
- '''
-
- def AddElement(self, parent, name, attrs=None, text=None):
- '''
- Adds a new XML Element as a child to an existing element or the Document.
-
- Args:
- parent: An XML element or the document, where the new element will be
- added.
- name: The name of the new element.
- attrs: A dictionary of the attributes' names and values for the new
- element.
- text: Text content for the new element.
-
- Returns:
- The created new element.
- '''
- if attrs == None:
- attrs = {}
-
- doc = parent.ownerDocument
- element = doc.createElement(name)
- for key, value in sorted(attrs.iteritems()):
- element.setAttribute(key, value)
- if text:
- element.appendChild(doc.createTextNode(text))
- parent.appendChild(element)
- return element
-
- def AddText(self, parent, text):
- '''Adds text to a parent node.
- '''
- doc = parent.ownerDocument
- parent.appendChild(doc.createTextNode(text))
-
- def AddAttribute(self, parent, name, value):
- '''Adds a new attribute to the parent Element. If an attribute with the
- given name already exists then it will be replaced.
- '''
- doc = parent.ownerDocument
- attribute = doc.createAttribute(name)
- attribute.value = value
- parent.setAttributeNode(attribute)
-
- def AddComment(self, parent, comment):
- '''Adds a comment node.'''
- parent.appendChild(parent.ownerDocument.createComment(comment))
-
- def ToPrettyXml(self, doc, **kwargs):
- # return doc.toprettyxml(indent=' ')
- # The above pretty-printer does not print the doctype and adds spaces
- # around texts, e.g.:
- # <string>
- # value of the string
- # </string>
- # This is problematic both for the OSX Workgroup Manager (plist files) and
- # the Windows Group Policy Editor (admx files). What they need instead:
- # <string>value of string</string>
- # So we use the poor man's pretty printer here. It assumes that there are
- # no mixed-content nodes.
- # Get all the XML content in a one-line string.
- xml = doc.toxml(**kwargs)
- # Determine where the line breaks will be. (They will only be between tags.)
- lines = xml[1:len(xml) - 1].split('><')
- indent = ''
- res = ''
- # Determine indent for each line.
- for i, line in enumerate(lines):
- if line[0] == '/':
- # If the current line starts with a closing tag, decrease indent before
- # printing.
- indent = indent[2:]
- lines[i] = indent + '<' + line + '>'
- if (line[0] not in ['/', '?', '!'] and '</' not in line and
- line[len(line) - 1] != '/'):
- # If the current line starts with an opening tag and does not conatin a
- # closing tag, increase indent after the line is printed.
- indent += ' '
- # Reconstruct XML text from the lines.
- return '\n'.join(lines)

Powered by Google App Engine
This is Rietveld 408576698