我想知道是否有可能获得内容控件的标题。获取标签非常容易,但XML中称为别名的标题无法访问。
当我问课时我得到的意思是“javax.xml.bind.JAXBElement”
这是我想要的xml
<w:sdt>
<w:sdtPr>
<w:rPr>
<w:rStyle w:val="Calibri8"/>
</w:rPr>
<w:alias w:val="The title"/> <== I want this little guy
<w:tag w:val="RULE["BaseSalary"]"/>
<w:id w:val="51973609"/>
<w:placeholder>
<w:docPart w:val="DefaultPlaceholder_1081868574"/>
</w:placeholder>
以下是我获取标签的方法:
for (Object alias : al) {
if ( alias.getClass().toString().contains("org.docx4j.wml.Tag")) {
//gets the Tag
String CTagVal = ((org.docx4j.wml.Tag) alias).getVal();
// If the tag contain ....
if (CTagVal.contains("RULE") || CTagVal.contains("CAL") ) {
...........................
获取标签真的很容易,因为有一个名为Tag的类,但为什么不存在“别名”类? 但更重要的是有办法获得它吗?要么 ??? Thx提前
答案 0 :(得分:1)
对于那些想要答案的人来说!
static Alias getAlias(SdtPr element) {
for (Object o : element.getRPrOrAliasOrLock()) {
if (o instanceof JAXBElement && ((JAXBElement)o).getValue() instanceof Alias) {
return ((JAXBElement<Alias>)o).getValue();
}
}
return null;
}
或
// for all elements get Tags and title
for (Object elem : al) {
org.docx4j.wml.SdtPr.Alias hello = null;
if (elem.getClass().toString().contains("avax.xml.bind.JAXBElement") &&
((javax.xml.bind.JAXBElement) elem).getValue().toString().contains("Alias")) {
hello = (Alias) ((javax.xml.bind.JAXBElement) elem).getValue();
System.out.println( hello.getVal() );
}
// tag part much easier
else if ( elem.getClass().toString().contains("org.docx4j.wml.Tag")) {
//gets the Tag
String CTagVal = ((org.docx4j.wml.Tag) elem).getVal();
..........
}
}