嗨@eakbas和@Favonius感謝您的回答。
我終於得到了一個解決方案,也許它不是最好的,但至少對我有用。
正如我前面提到的,我使用了長笛庫來實現包org.w3c.sac包的DocumentHandler類,以便分析css文件。
所以我實現了'屬性'方法,這個方法有3個參數,屬性名稱,一個LexicalUnit對象和一個布爾值,表示該屬性具有重要的聲明與否。
public void property(String property, LexicalUnit lexicalUnit, boolean important)
因爲我需要在那裏特定屬性的行號,我做了一個搜索,我看得出來,那笛用來實現LexicalUnit接口的類持有的行號(這是LexicalUnitImp),所以我使用反射來將LexicalUnit接口轉換爲一個LexicalUnitImp對象。
Class<?> clazz = ClassUtils.getClass("org.w3c.flute.parser.LexicalUnitImpl");
Object lexicalObject = clazz.cast(lexicalUnit);
Integer line = (Integer)MethodUtils.invokeMethod(lexicalObject, "getLineNumber", null, null);
我做到了以這種方式,因爲該類LexicalUnitImpl是「保護」,我不能以傳統方式投放。
class LexicalUnitImpl implements LexicalUnit
注意:類ClassUtils和MethodUtils是commons-beanutils apache庫的一部分。
你需要更具體。你能用一個簡單的(短)輸入CSS文件重現你的問題嗎?如果是這樣,你可以在這裏發佈代碼和輸入。然後,很多人將能夠提供幫助。 – emrea 2010-10-04 23:30:30