Воссоздание того же файла xml в качестве входных данных - PullRequest
0 голосов
/ 09 июля 2020

У меня на входе файл xml

<relation Connection="excel.1ew9u4t0tggb9315darmm0nfz2kb"
  name ="Custom SQL Query" type="text">SELECT [Orders$].[Category] AS [Category],&amp;#13,&amp;#10, 
  [Orders$].[City] AS [City],&amp;#13,&amp;#10, 
  [Orders$].[Country] AS [Country],&amp;#13,&amp;#10, 
  [Orders$].[Customer ID] AS [Customer ID],&amp;#13,&amp;#10, 
  [Orders$].[Customer Name] AS [Customer Name],&amp;#13,&amp;#10, 
  [Orders$].[Discount] AS [Discount],&amp;#13,&amp;#10, 
  [Orders$].[Profit] AS [Profit],&amp;#13,&amp;#10, 
  [Orders$].[Quantity] AS [Quantity],&amp;#13,&amp;#10, 
  [Orders$].[Region] AS [Region],&amp;#13,&amp;#10,
  [Orders$].[State] AS [State],&amp;#13,&amp;#10, 
  [People$].[Person] AS [Person],&amp;#13,&amp;#10,
  [People$].[Region] AS [Region (People)]&amp;#13,&amp;#10,FROM [Orders$]&amp;#13,&amp;#10,  
  INNER JOIN [People$] ON [Orders$].[Region] = [People$].[Region]</relation>
  

Мне нужно разбить запрос sql и создать xml, как показано ниже.

 <metadata-records class="column">
   <remote-name>Category</remote-name>
   <remotetype>130</remotetype>
   <local-name>[Category]</local-name>
   <parent-name>[Custom SQL Query]</parent-name>
   <remote-alias>Category</remote-alias>
   <ordinal>1</ordinal>
   <local-type>string</local-type>
   <aggregation>Count</aggregation>
   <contains-null>true</contains-null>
   <collation-flag>1</collation-flag>
   <attributes>
     <attribute datatype="string" name="DebugRemoteType">WSTR</attribute>
   </attributes>
 </metadata-records>


for City i have to create a seperate set of </metadata-records> like above 
 
 <metadata-records class="column">
   <remote-name>Category</remote-name>
   <remotetype>130</remotetype>
   <local-name>[Category]</local-name>
   <parent-name>[Custom SQL Query]</parent-name>
   <remote-alias>Category</remote-alias>
   <ordinal>1</ordinal>
   <local-type>string</local-type>
   <aggregation>Count</aggregation>
   <contains-null>true</contains-null>
   <collation-flag>1</collation-flag>
   <attributes>
     <attribute datatype="string" name="DebugRemoteType">WSTR</attribute>
   </attributes>
 </metadata-records>
 and so on
 

может кто-нибудь помочь Я тоже пытаюсь, но не могу найти решение, так как я новичок в XML, может кто-нибудь мне помочь?

Спасибо, Аару sh

1 Ответ

0 голосов
/ 09 июля 2020

Вам следует взглянуть на Python документы для ElementTree: https://docs.python.org/3.8/library/xml.etree.elementtree.html

В принципе, вы можете сделать это:

import xml.etree.ElementTree as ET
# Read the input
tree = ET.parse('input.xml')
# Create new output file
tree.write('output.xml')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...