From 34acdd253439448b6c08c3abfc5e7b8bd03f383f Mon Sep 17 00:00:00 2001 From: Jooncheol Park Date: Mon, 27 Aug 2012 02:25:59 +0900 Subject: [PATCH] Fix ManifestParseError when first child node is comment If the first line of manifest.xml is a XML comment, root.childNodes[0] is not a 'manifest' element node. The python minidom module will makes a 'Comment' node as root.childNodes[0]. Since the original code only checks whether the first child node is 'manifest', it couldn't do any command including 'sync' due to the 'ManifestParseError' exception. This patch could allow the comments between '' and '' in the manifest.xml file. Change-Id: I0b81dea4f806965eca90f704c8aa7df49c579402 --- manifest_xml.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/manifest_xml.py b/manifest_xml.py index 65b76379..8e9efd13 100644 --- a/manifest_xml.py +++ b/manifest_xml.py @@ -309,12 +309,14 @@ class XmlManifest(object): if not root or not root.childNodes: raise ManifestParseError("no root node in %s" % (path,)) - config = root.childNodes[0] - if config.nodeName != 'manifest': + for manifest in root.childNodes: + if manifest.nodeName == 'manifest': + break + else: raise ManifestParseError("no in %s" % (path,)) nodes = [] - for node in config.childNodes: + for node in manifest.childNodes: if node.nodeName == 'include': name = self._reqatt(node, 'name') fp = os.path.join(include_root, name)