<TestSuite name="FixTracerTests">
<Test name="IM-Tracer" verbose="false">
<Message action="send1" connection="IMTracerConnection">
<Field name="MsgType" value="J" />
<Field name="ABC" value="APPLE" /> <!-- Auto Generated.. -->
<Field name="DEF" value="SAMSUNG" />
<Field name="XYZ" value="HTC" />
<Field name="GHI" value="SONY" />
</Message>
</Test>
</TestSuite>
我试图通过使用Java来访问特定属性的值。例如,如果用户要求&#34; name =&#34; ABC&#34;的值,那么我应该得到&#34; APPLE&#34;。有人可以帮助我吗?
我试过这件事:
public static void main(String[] args) throws Exception {
File xmlfile = new File("file.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(xmlfile);
NodeList node = document.getElementsByTagName("Field");
System.out.println("Enter name =");
String name = userInputScanner.nextLine();
NamedNodeMap attributes = node.getAttributes();
System.out.println(node.item(0).getAttributes().getNamedItem("value").getNodeValue());
}
答案 0 :(得分:0)
似乎这个jdom可以成功 我没有尝试过,但我的想法是融入上下文:
SAXBuilder sxb = new SAXBuilder();
try {
document = sxb.build(new File("Exercice2.xml"));
} catch(Exception e){}
root = document.getRootElement();
Iterator i = root.getChild("Test").getChild("Message").getChildren("Field").iterator();
while(i.hasNext())
{
Element current = (Element)i.next();
if(current.getAttributeValue("name") == nameDesired) {
return current.getAttributeValue("value");
}
return null;
这只是一个我从未使用过jdom的想法,但是我已经阅读过它应该对你自己的代码进行一些调整。