Java 从XML文件中读取值
我知道如何使用Java 从XML文件中读取值,java,xml-parsing,Java,Xml Parsing,我知道如何使用getelementbyTag读取Java中的简单XML文件,但我想从这里读取MAC地址,即Java中的01-0C-CD-01-00-34 我试图使用getElementsByTagName(“”),但是我应该传递什么参数来获取具有type=“MAC Address”的元素 010C-CD-01-00-34 000 4 0001 我目前的代码是: public static void main(String argv[]) { try { File fX
getelementbyTag
读取Java中的简单XML文件,但我想从这里读取MAC地址,即Java中的01-0C-CD-01-00-34
我试图使用getElementsByTagName(“”)
,但是我应该传递什么参数来获取具有type=“MAC Address”
的元素
010C-CD-01-00-34
000
4
0001
我目前的代码是:
public static void main(String argv[]) {
try {
File fXmlFile = new File("C:\\Users\\User\\Desktop\\Temp\\ReadXml\\staff.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("Address");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("MAC: " + eElement.getElementsByTagName("").item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
publicstaticvoidmain(字符串argv[]){
试一试{
File fXmlFile=新文件(“C:\\Users\\User\\Desktop\\Temp\\ReadXml\\staff.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
documentdoc=dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList=doc.getElementsByTagName(“地址”);
对于(int-temp=0;temp
您可以使用xpath查找xml文档的特定部分
File fXmlFile = new File("C:\\Users\\User\\Desktop\\Temp\\ReadXml\\staff.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
// Create XPathExpression
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
XPathExpression expr =
xpath.compile("/Address/P[@type='MAC-Address']/text()");
// evaluate the Xpath and return result as a string.
String mac = (String) expr.evaluate(doc, XPathConstants.STRING);
System.out.println("MAC: " + mac);
Xpath类都来自java.xml.Xpath
包
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
如果要导航节点,可以。您不需要规范化文档,但在查找节点时,确实需要使用document元素,而不仅仅是doc。你可以得到所有的“P”标签并查找MAC地址。比如:
NodeList nList = doc.getDocumentElement().getElementsByTagName("P");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
if ("MAC-Address".equals(eElement.getAttribute("type"))) {
System.out.println("MAC: " + eElement.getTextContent());
}
}
}
NodeList nList=doc.getDocumentElement().getElementsByTagName(“P”);
对于(int-temp=0;temp
NodeList nList = doc.getDocumentElement().getElementsByTagName("P");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
if ("MAC-Address".equals(eElement.getAttribute("type"))) {
System.out.println("MAC: " + eElement.getTextContent());
}
}
}