2017-03-29 4 views
6

मैं एक एक्सएमएल फ़ाइल है:एक्सएमएल ElementTree अनुक्रमण टैग

<sentence id="en_BlueRibbonSushi_478218345:2"> 
    <text>It has great sushi and even better service.</text> 
</sentence> 
<sentence id="en_BlueRibbonSushi_478218345:3"> 
    <text>The entire staff was extremely accomodating and tended to my every need.</text> 
</sentence> 
<sentence id="en_BlueRibbonSushi_478218345:4"> 
    <text>I&apos;ve been to this restaurant over a dozen times with no complaints to date.</text> 
</sentence> 

एक्सएमएल ElementTree का उपयोग करना, मैं एक टैग <Opinion> एक विशेषता category= है कि सम्मिलित करना चाहते हैं। मैं वर्ण list = ['a', 'b', 'c'] की एक सूची है कहते हैं, यह संभव संवर्द्धित उन्हें एक पाठ करने के लिए asign है तो मेरे पास है:

<sentence id="en_BlueRibbonSushi_478218345:2"> 
    <text>It has great sushi and even better service.</text> 
    <Opinion category='a' /> 
</sentence> 
<sentence id="en_BlueRibbonSushi_478218345:3"> 
    <text>The entire staff was extremely accomodating and tended to my every need.</text> 
    <Opinion category='b' /> 
</sentence> 
<sentence id="en_BlueRibbonSushi_478218345:4"> 
    <text>I&apos;ve been to this restaurant over a dozen times with no complaints to date.</text> 
    <Opinion category='c' /> 
</sentence> 

मुझे पता है मैं वाक्य आईडी गुण का उपयोग कर सकते हूँ, लेकिन इस के पुनर्गठन का एक बहुत आवश्यकता होगी मेरी कोड। असल में, मैं अपनी सूची अनुक्रमणिका के साथ संरेखित करने के लिए प्रत्येक वाक्य प्रविष्टि को अनुक्रमणित करने में सक्षम होना चाहता हूं।

+2

गुण एक शब्दकोश हैं: अपने XML डेटा मान लिया जाये कि यह अपने दस्तावेज़ पेड़ से तत्वों को जोड़ने होगा एक चर data कहा जाता है में है। शब्दकोश आदेश किसी भी तरह से संरक्षित होने की गारंटी नहीं है। – leovp

+0

ओह मैं देखता हूं। सत्यापनकर्ता के साथ काम करता है (एक स्वर्ण मानक के रूप में जांच) जैसा कि बदलने की जरूरत नहीं है। धन्यवाद! – user3058703

+0

क्या आप एक पुनरुत्पादित उदाहरण बना सकते हैं? – kilojoules

उत्तर

4

आप पेड़ में तत्व जोड़ने के लिए SubElement फैक्टरी फ़ंक्शन का उपयोग कर सकते हैं।

import xml.etree.ElementTree as ET 
tree = ET.XML(data) 
for elem, category in zip(tree.findall('sentence'), ['a', 'b', 'c']): 
    Opinion = ET.SubElement(elem, 'Opinion') 
    Opinion.set('category', category) 

ET.dump(tree) # prints the tree; tree.write('output.xml') is another option 
+1

'ज़िप' तब रुक जाएगा जब सबसे कम पुनरावर्तनीय रन समाप्त हो जाता है, इसलिए आपके द्वारा सुझाए गए टुकड़े की आवश्यकता नहीं है (क्योंकि इससे कोई फर्क नहीं पड़ता)। किसी भी मामले में, मुझे लगता है कि ओपी श्रेणी सूची उत्पन्न करने का कुछ और दिलचस्प तरीका है। – cco

+0

यह वही है जो मुझे चाहिए था। बहुत - बहुत धन्यवाद! – user3058703

संबंधित मुद्दे