<?xml version="1.0"?>
<AllConcepts>
<Level id="1">
<TST>RegisterPatient</TST>
</Level>
<Level id="2">
<TST>PersonwithInpatientEncounter</TST>
<TST>InpatientwithDiagnoses</TST>
<TST>InpatientwithRadiologyOrder</TST>
</Level>
<Level id="3">
<TST>InpatientwithProblem</TST>
<TST>InpatientwithAllergy</TST>
</Level>
</AllConcepts>
以上是我的XML。 请通过提供Java值来帮助我获取子节点ID。
示例:
value=InpatientwithDiagnoses
,它应该给我节点2; value = RegisterPatient
,它应该给我节点1。答案 0 :(得分:1)
我建议使用SAAJ!
这是一个很棒的Java库,为我们提供了XML文档的Java功能。您可以使用此库来构造,编辑或制作SOAP消息。一旦创建了SOAP对象,您就可以从那里提取所需的内容。
以下是您可以用来创建该Java对象的内容:
// Use SAAJ to convert Document to SOAPElement
// Create SoapMessage
SOAPMessage message = createSOAPMessage();
SOAPBody soapBody = message.getSOAPBody();
// This returns the SOAPBodyElement
SOAPElement xml = soapBody.addDocument(doc);
然后类似这样从XML主体获取内容:
java.util.Iterator iterator = soapBody.getChildElements(bodyName);
SOAPBodyElement bodyElement = (SOAPBodyElement)iterator.next();
String node = bodyElement.getValue();
参考文献:
https://docs.oracle.com/javase/7/docs/api/javax/xml/soap/SOAPMessage.html
https://docs.oracle.com/javaee/5/tutorial/doc/bnbhr.html#bnbhz
答案 1 :(得分:0)
您可以使用java.xml.xpath
-无需安装第三方库。
并使用此xpath获取给定的TST值所需的元素。
//TST[.='<value>']/parent::Level
其中<value>
可以是RegisterPatient
或InpatientwithDiagnoses
或其他任何东西。
请参阅Java的xpath文档here。