के बाद इंडेक्स खोजें मैंने जावा में वीटीडी (मुझे लगता है कि वीटीडी-एक्सएमएल) का उपयोग करना शुरू कर दिया है, और XPath के लिए यह उत्कृष्ट है। जहां मैं अब एक मुद्दा मार रहा हूं डेटा डालने के साथ है। कहते हैं कि चलो मैं निम्नलिखित कर रहा हूँ:जावा में वीटीडी-एक्सएमएल - XMLModifier.insertAfterElement
VTDNav nav = preExistingGen.getNav();
AutoPilot pilot = new AutoPilot(nav);
pilot.selectXPath("/Something/SomethingElse");
if (pilot.evalXPath() != -1) {
XMLModifier modifier = new XMLModifier(nav);
modifier.insertAfterElement("<some>content</some>");
}
मैं क्या मान लिया था कि यह एक वास्तविक समय अद्यतन, जो VTDNav में भी परिलक्षित हुई थी। ऐसा लगता है कि मेरी समझ गलत है, क्योंकि केवल तत्व सामग्री डालने से नौसेना के लिए कुछ भी नहीं होता है (यदि मैं वीटीडीएनएवी आउटपुट करता हूं, तो इसमें अभी भी मेरा मूल एक्सएमएल है)। नए एक्सएमएल पर एक संभाल पाने का एकमात्र तरीका यह है कि इसे XMLModifier से आउटपुट करना है।
modifier.outputAndReparse(); // Gives me a new VTDNav with the new content
क्या मुझे कुछ याद आ रहा है? क्या ऐसा करने का कोई आसान तरीका है? मैं नई सामग्री डालने में सक्षम होना चाहता था, और फिर तुरंत नई अनुक्रमणिका प्राप्त करें। मेरा मौजूदा कोड (मानक डीओएम कक्षाओं का उपयोग करके) में आवेषण और अद्यतन का एक टन है, और मुझे यह भी जानने की आवश्यकता है कि दस्तावेज़ में अंतिम सम्मिलित तत्व कहां मौजूद था। Output andReparse() को हर बार करने के लिए और फिर सम्मिलित तत्व (जिसे मैं गारंटी भी नहीं दे सकता) ढूंढ सकता हूं, एक व्यावहारिक समाधान की तरह प्रतीत नहीं होता है।
ऐसा लगता है कि एक महान समाधान मैं कहीं भी मिल सकता है नहीं है की तरह। चूंकि मेरा कोड एक नया दस्तावेज़ बनाने के साथ काम करता है, इसलिए मैं अपने इनपुट दस्तावेज़ पर पढ़ने के लिए vtd का उपयोग करके और मेरे आउटपुट दस्तावेज़ पर लिखने के लिए डीओएम का उपयोग करके एक संकर दृष्टिकोण ले रहा हूं। – jpcamara
+1, और मैंने दस्तावेज़ को पढ़ने और नेविगेट करने के लिए VTD का उपयोग करने का भी निर्णय लिया, लेकिन इसे संशोधित करने के लिए DOM का उपयोग करें। –