def convert_xml_to_json_with_region_value(xml_path):
# Parse the XML file
tree = ET.parse(xml_path)
root = tree.getroot()
# Initialize a list to hold the converted data
json_data = {"positive": []}
# Iterate through the XML structure and extract relevant data
for annotation in root.findall('.//Annotation'):
# For each annotation, extract regions
if annotation.attrib['Name'] != 'Layer 2':
continue
for region in annotation.findall('.//Region'):
# Extracting the Value from the first attribute in region if available or defaulting to "name"
region_value = next((attribute.get('Value') for attribute in region.findall('.//Attribute')), 'name')
if region_value == 'name':
#region_value = next((attribute.get('Text') for attribute in region.findall('.//RegionAttributeHeaders')), 'name')
region_value = region.attrib['Text']
print(region_value)
# Extract vertices for each region
vertices = []
for vertex in region.findall('.//Vertex'):
x = float(vertex.get('X'))
y = float(vertex.get('Y'))
vertices.append([x, y])
# Add the region data to the json structure
region_data = {
"name": region_value, # Using the extracted Value
"vertices": vertices
}
json_data["positive"].append(region_data)
return json_data
xml to json
最新推荐文章于 2024-05-28 16:55:52 发布