读书人

XML的复杂关系解析,该怎么解决

发布时间: 2012-02-02 23:57:14 作者: rapoo

XML的复杂关系解析
问个问题,想问问大家一般怎么处理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 访问也很快

读书人网 >XML SOAP

热点推荐