1#!/usr/bin/env python3
2#
3# Copyright 2020 - The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#     http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17"""Utils to handle xml files."""
18
19from xml.etree import ElementTree
20
21from aidegen import constant
22from aidegen.lib import aidegen_metrics
23from aidegen.lib import common_util
24
25
26def parse_xml(xml_file):
27    """Parses the content of a XML file.
28
29    Args:
30        xml_file: An XML file path.
31
32    Returns:
33        An xml.etree.ElementTree object contains the XML parsing result.
34    """
35    try:
36        return ElementTree.parse(xml_file)
37    except ElementTree.ParseError as err:
38        aidegen_metrics.send_exception_metrics(
39            constant.XML_PARSING_FAILURE, err,
40            common_util.read_file_content(xml_file),
41            constant.INVALID_XML.format(XML_FILE=xml_file))
42