<playingTestCodeDetails classCode="ENT" determinerCode="INSTANCE" >
<realmCode code="QD" />
<id assigningAuthorityName="PRMORDCODE" extension="16494" />
<id assigningAuthorityName="TESTNUMINBOOK" extension="16494" />
<code code="16494" codeSystemName="QTIM" displayName="SureSwab Candidiasis" />
<name use=""></name>
<asSeeAlsoCode classCode="ROL" > <!-- Have repeated Seealsocode section for multiple see also codes and stripped names -->
<realmCode code="QD" />
<code code="7600" displayName="Sample See Also Name" ></code>
</asSeeAlsoCode>
<asSeeAlsoCode classCode="ROL" >
<realmCode code="QD" />
<code code="6496" displayName="Sample See Also Name" ></code>
</asSeeAlsoCode>
</playingTestCodeDetails>
<subjectOf typeCode="SBJ">
<realmCode code="QD" />
<order classCode="OBS" moodCode="EVN" >
<realmCode code="QD" />
<performer nullFlavor="" typeCode="PRF"><!-- Have added this to accomodate the UnitCode-->
<performingLocatedEntity classCode="LOCE" nullFlavor="">
<locatedPerformingSite classCode="ORG" determinerCode="INSTANCE">
<id assigningAuthorityName="ASORDERED" extension="16494" />
</locatedPerformingSite>
</performingLocatedEntity>
</performer>
<origin nullFlavor="" typeCode="ORG"> <!-- Have added this to accomodate the Ordering Lab Code-->
<orderingLocatedEntity classCode="LOCE" >
<locatedOrderingSite classCode="ORG" determinerCode="INSTANCE">
<id assigningAuthorityName="PRMORDCODE" extension="16494"/>
<code code="SJC" codeSystemName="QTIM" codeSystem="ORDERINGLABCODE"/>
</locatedOrderingSite>
</orderingLocatedEntity>
</origin>
<pertinentInformation1 typeCode="PERT">
<realmCode code="QD" />
<clinicalInfo classCode="ACT" moodCode="EVN">
<realmCode code="QD" />
<title>Specialitysample1</title>
<text>Conditionsample1</text>
</clinicalInfo>
</pertinentInformation1>
<subjectOf typeCode="SUBJ">
<realmCode code="QD" />
<annotation classCode="ACT" moodCode="EVN" >
<realmCode code="QD" />
<code code="DOSCATNAME"></code>
<text><![CDATA[SureSwab<sup>®</sup>, <em>Candidiasis</em>, PCR]]></text>
</annotation>
</subjectOf>
</subjectOf>
我有一个看起来像上面的xml。我想解析它;什么是解析它的最佳方法? DOM,SAX(我听说过JAXB,XSLT,......不确定这两个);我们可以结合使用DOM和SAX解析XML ??
使用属性访问作为“代码”获取标记值的简单方案 比如当代码中的代码= DOSCATNAME时,我们需要获取相应标签的数据。
其他方案是访问标记并获取当assigningAuthorityName属性具有值PRMORDCODE时的层次结构和访问扩展属性。
使用Parser可以实现上述两种情况吗?
我是新手,请理解我需要解析的内容建议我一个想法...提前感谢...
答案 0 :(得分:1)
使用JAXB。创建类模型并适当地注释您的类。环境将完成剩下的工作。
例如,您应该创建包含属性PlayingTestCodeDetails
,classCode
等的类determinerCode
。
我会告诉你更多:你可以请求JAXB 为你生成类。从这篇文章开始学习:http://www.roseindia.net/jaxb/r/jaxb.shtml
这需要几个小时才能开始,但比你将在15分钟内完成。如果您正在使用DOM,您可以在15分钟的学习时间内开始编程,并在几天内编写解析XML的代码。
答案 1 :(得分:0)
这取决于您的使用需求。
SAX和DOM都用于解析XML文档。两者都有优点和缺点,可根据具体情况用于编程。
SAX
•逐节点解析
•不将XML存储在内存中
•我们无法插入或删除节点
•SAX是基于事件的解析器
•SAX是XML的简单API
•不保留评论
•SAX通常比DOM更快地运行
<强> DOM 强>
•在处理之前将整个XML文档存储到内存中
•占用更多内存
•我们可以插入或删除节点
•沿任何方向移动。
•DOM是树模型解析器
•文档对象模型(DOM)API
•保留评论
•SAX通常比DOM更快地运行
如果我们需要找到一个节点而不需要插入或删除,我们可以使用SAX本身,否则DOM提供了更多的内存。
这些是很少的解析器: -