问个问题,想问问大家一般怎么处理XML,比如,下面这段代码,在<participants>下面有多个participant,每个participant下面又有一个role,而这个role是在roles中描述的
我想问一下,这种相互包含的关系应该怎么解析呢?大家一般都是怎么做的,我用的是java做的
- XML code
<?xml version="1.0" encoding="UTF-8"?> <orgdata> <participants> <participant id="PA-b7a79138-158d-4fce-b875-61029bb85431"> <userid>prod-coordinator</userid> <password>bUlBkHMDhGQMFWNZUYdBGwmcoqQ=</password> <firstname>Florian</firstname> <lastname>Lang (production coordinator)</lastname> <description /> <notes /> <isAdministrator>false</isAdministrator> <isAvailable>true</isAvailable> <roles> <role>RO-9b1bf293-9c1e-4868-8df0-f1f1911f5fca</role> </roles> <positions /> <capabilities /> <privileges>00000000</privileges> </participant> </participants> <roles> <role id="RO-d2e982aa-96b7-40df-9b27-e78a5cb0c73b"> <name>1st AD</name> <description /> <notes /> </role> <role id="RO-d0e1e1d0-6413-433f-8043-56c821686eaa"> <name>2nd AD</name> <description /> <notes /> </role> </roles> <positions /> <capabilities /> <orggroups> <orggroup id="OG-200b6b20-5023-47b7-8ef9-ad1ec55f87ff"> <groupName>Production Office</groupName> <groupType>GROUP</groupType> <description /> <notes /> </orggroup> </orggroups> </orgdata>
------解决方案--------------------
上面指的是 XML 文件非常大,用 SAX 来解析保证性能时应该用 HashMap 先读入 role 字典,如果 XML 本身不大,直接用 DOM (JDOM,DOM4J...) 来解析,因为都已加载到内存,直接用 XPATH 访问也很快