docx4j - Nodes Omitted From XmlUtils.marshalToString() -


docx4j से XMLUtils.marshalToString () का उपयोग करते हुए, मेरे पास निम्न सामग्री दो स्थानों में समान स्थान पर है Docx फ़ाइलें (.docx unzipping के बाद संबंधित word / document.xml से निकाले गए) ये फ़ाइलें के बीच एकमात्र अंतर है:

 & lt; w: t xml: space = "संरक्षित करें" & gt; नई रेखा सबसे पहले & lt; / w: t & gt;  

और

 & lt; w: t xml: space = "संरक्षित करें" & gt; & LT; w: r & gt; & Lt; w: t xml: space = "संरक्षित करें" & gt; नई पंक्ति। & Lt; / w: t & gt; & Lt; / डब्ल्यू: r & gt; & LT; w: r & gt; & Lt; w: t xml: space = "संरक्षित" & gt; सबसे पहले & lt; / w: t & gt; & Lt; / डब्ल्यू: r & gt; & Lt; / डब्ल्यू: टी & gt;  

पहले दस्तावेज़ में, & lt; w: t & gt; नोड ऊपर के रूप में आउटपुट है।

हालांकि, दूसरे में, एक खाली & Lt; w: t & gt; नोड निम्नानुसार मुद्रित किया गया है:

 & lt; w: t xml: space = "संरक्षित" & gt; & lt; / w: t & gt;  

मैंने w: t पर स्कीमा की जांच की और w: r मान्य तत्व शामिल है।

संपादित करें : उपरोक्त लिंक w: p तत्व का स्कीमा है, नहीं w: t w: t के लिए उचित लिंक है:। यह स्पष्ट रूप से w: t के लिए एकमात्र स्वीकार्य सामग्री को दिखाता है (कोई w: r या कोई अन्य टैग नहीं है) नतीजतन (जैसा कि जेसन का जवाब नीचे दिया गया है), एक्सएमएल से document.xml अमान्य था, और (जैसे) docx4j में unmarshalled नहीं किया गया नतीजतन, पाठ XmlUtils.marshalToString () द्वारा आउटपुट के लिए उपलब्ध नहीं था।

दूसरे ब्लॉक को आउटपुट होने से क्या रखा है?

आप marshalToString पर विश्वास कर सकते हैं

यदि वह खाली w: t लौटा रहा है, तो ऐसा इसलिए है क्योंकि अंतर्निहित org.docx4j.wml.Text ऑब्जेक्ट में रिक्त या खाली मान फ़ील्ड है।

आपको यह देखना होगा कि यह कोड कितना पॉपुलेट करना चाहिए।

Comments