我试图从一个.doc MS Word文档中获取复选框值,使用OPENXML从.docx读取它更容易,因为它隐含在输出XML中:
<w:checkBox>
<w:sizeAuto/>
<w:default w:val=\"1\"/>
</w:checkBox>
但是,使用Interop的输出XML从Document.Content.XML获取是不可能的,因为该值不是隐式的:
<w:p wsp:rsidR=\"00040B2E\" wsp:rsidRPr=\"00A81C11\" wsp:rsidRDefault=\"00040B2E\" wsp:rsidP=\"001E040C\">
<w:pPr>
<w:spacing w:before=\"120\"/>
<w:rPr>
<w:rFonts w:ascii=\"Arial\" w:h-ansi=\"Arial\" w:cs=\"Arial\"/>
<wx:font wx:val=\"Arial\"/>
<w:sz w:val=\"18\"/>
<w:sz-cs w:val=\"18\"/>
</w:rPr>
</w:pPr>
<w:r wsp:rsidRPr=\"00A81C11\">
<w:rPr>
<w:rFonts w:ascii=\"Arial\" w:h-ansi=\"Arial\"/>
<wx:font wx:val=\"Arial\"/>
<w:b/>
<w:sz w:val=\"18\"/>
<w:sz-cs w:val=\"18\"/>
</w:rPr>
<w:fldChar w:fldCharType=\"begin\">
<w:fldData xml:space=\"preserve\">/////2UAAAAUABIASwBvAG4AdAByAG8AbABsAGsA5ABzAHQAYwBoAGUAbgAyADMAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAA\r\n</w:fldData>
</w:fldChar>
</w:r>
<w:r wsp:rsidRPr=\"00A81C11\">
<w:rPr>
<w:rFonts w:ascii=\"Arial\" w:h-ansi=\"Arial\"/>
<wx:font wx:val=\"Arial\"/>
<w:b/>
<w:sz w:val=\"18\"/>
<w:sz-cs w:val=\"18\"/>
</w:rPr>
<w:instrText> FORMCHECKBOX </w:instrText>
</w:r>
<w:r wsp:rsidRPr=\"00A81C11\">
<w:rPr>
<w:rFonts w:ascii=\"Arial\" w:h-ansi=\"Arial\"/>
<wx:font wx:val=\"Arial\"/>
<w:b/>
<w:sz w:val=\"18\"/>
<w:sz-cs w:val=\"18\"/>
</w:rPr>
</w:r>
<w:r wsp:rsidRPr=\"00A81C11\">
<w:rPr>
<w:rFonts w:ascii=\"Arial\" w:h-ansi=\"Arial\"/>
<wx:font wx:val=\"Arial\"/>
<w:b/>
<w:sz w:val=\"18\"/>
<w:sz-cs w:val=\"18\"/>
</w:rPr>
<w:fldChar w:fldCharType=\"end\"/>
</w:r>
</w:p>
我正在提取此XML的C#代码:
Microsoft.Office.Interop.Word._Application word = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document doc = word.Documents.Open(Path);
XML_FROM_DOC = doc.Content.XML;
doc.Close();
word.Quit();
有什么建议吗?提前谢谢!