我有一個複雜的XML文件,其中包含將被解析的配置信息。舉例:Java - 如何解析和處理複雜的XML
<Rule>
<ID></ID>
<Center>
<MethodCall>
<Package></Package>
<Method>
<Pattern></Pattern>
</Method>
<Parameters>
<ParametersCount>
<Number>0,1-2,6+</Number>
</ParametersCount>
<Parameter>
<Package></Package>
<Position></Position>
<Const>
<Number></Number>
</Const>
</Parameter>
</Parameters>
</MethodCall>
</Center>
<Conditions>
<Or>
<Parameter>
<Position>1</Position>
<Package>com.test1</Package>
</Parameter>
<Parameter>
<Position>1</Position>
<Package>com.test2</Package>
</Parameter>
</Or>
</Conditions>
</Rule>
它是AST分析儀的配置。該代碼將通過center
標籤中的規則找到,稍後它將通過conditions
規則進行分析。通過如何處理它?我有兩個想法:
1)爲每個標記(參數,包,方法等)製作很多類,然後讀取這些對象中的規則並在我的程序中處理它。
2)在處理代碼時使用Element和分析XML規則。
UPD:我會澄清我的需求。試想一下,你有很多應該被處理的選項。在示例的情況下,MethodCall可能不包含某些選項,解析器應該得到相應的對象(因此,如果它不包含Package,Method,應該找到任何方法調用),但是在查找之後,它將被檢查,如果它滿足Conditions
標籤內的條件。這裏面的問題。我不知道如何存儲這個配置信息。例如,我們得到了一個方法調用,裏面的條件我們有兩個參數選項,比如在代碼中,以及如何驗證這個?創建一個條件列表(但我們需要有一個鏈表,因爲我們有邏輯運算符,如Not,Or,And),如List<Object>
,但這些對象是Parameter/ParametersCount/MethodName/PackageName/etc類的對象。這是一個好主意嗎?
谷歌搜索後的第一個鏈接[用java解析xml](http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/) – Lrrr
我知道如何閱讀它,我不知道如何存儲和處理這個複雜的配置 – ivan
如果您想做任何類型的查詢,還要對xPath進行一些研究 – MadProgrammer