私はこのXMLを持っています
<Results SchemaVersion="1.0" SchemaType="Results" GroupId="-12345"
xmlns="http://xyz" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<Attempt>
<Time>2007-03-30T15:58:15</Time>
<Message>This is some message</Message>
</Attempt>
<Attempt>
<Time>2007-03-30T15:59:45</Time>
<Message>This is some other message</Message>
</Attempt>
</Results>
そして、私は上記のxmlを解析するJavaのこのコードを持っています。xpathクエリを使用してxmlのルート要素の属性を取得したいと思います。ルート要素の値は取得できますが、属性は取得できません。注:この場合、属性名がわかりません。そうでない場合は、これらの属性に直接アクセスできた可能性があります。
public class Try {
public static void main(String args[]){
try{
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse("C:/Documents and Settings/tulans/workspace/WebServiceTool/src/main/resources/Input.xml");
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("/*");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
System.out.println(nodes.item(0).getLocalName());
System.out.println(nodes.item(0).getNodeName());
}catch(Exception e){
System.out.println(e);
}
}
}
次の結果が得られます。
Results
Results
ルート要素属性も必要です:
SchemaVersion="1.0" SchemaType="Results" GroupId="-12345"
xmlns="http://xyz" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"