私のXMLファイルは次のようになります。私は、タグ・ポイントの属性を取得しようとするとxmlファイルから属性を取得する方法は?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pointList SYSTEM "point.dtd">
<pointList>
<point unit="mm">
<x>2</x>
<y>3</y>
</point>
<point unit="cm">
<x>9</x>
<y>3</y>
</point>
<point unit="px">
<x>4</x>
<y>7</y>
</point>
</pointList>
:
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class TryXml {
public static void main (String [] args) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
Document doc = null;
try {
builder = factory.newDocumentBuilder();
}
catch (ParserConfigurationException e){
System.out.println(e.getMessage());
}
File f = new File("p1.xml");
try {
doc=builder.parse(f);
}
catch (SAXException e){
e.printStackTrace();
}
catch (IOException e){
e.printStackTrace();
}
Element root = doc.getDocumentElement();
System.out.println(root.getTagName());
System.out.println("****************");
NodeList nList = root.getChildNodes();
for (int i=0;i<nList.getLength();i++) {
if(nList.item(i) instanceof Element)
System.out.println(nList.item(i).getAttributes());
}
}
}
を私が得るすべてのアドレスのようなものです:
[email protected]
[email protected]
[email protected]
缶誰かがポイントの属性や他の内部タグを取得する方法のヒントを教えてくれますか?
私は "ユニット"を使用する場合どのように内部タグの値を取得するのですか?私は結果が必要です: 'point 23mm、point 93cm、point 47px' – Gipsy
これで' Element'を手に入れました。 .getChildNodes() 'はあなたのコードで' nList'を使ったときと同じように繰り返し処理できる 'NodeList'を提供します。 – Oliver
@Gipsy私の答えの編集を参照してください。 –