java xml检索命名参数
这就是我被困的地方。我找不到通过“name”设置其中一个param元素的值的方法java xml检索命名参数,java,xml,Java,Xml,这就是我被困的地方。我找不到通过“name”设置其中一个param元素的值的方法 我使用的是java 1.7,您需要键入要键入的每个节点,以便能够设置文本和属性。你可能想看看,它简化了这样的事情 String xmlfile = "path\\to\\file.xml" DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.
我使用的是java 1.7,您需要键入要键入的每个节点,以便能够设置文本和属性。你可能想看看,它简化了这样的事情
String xmlfile = "path\\to\\file.xml"
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(xmlfile);
//get the params element
Node params = doc.getElementsByTagName("params").item(0);
//get a list of nodes in the params element
NodeList param = params.getChildNodes();
NodeList params=doc.getElementsByTagName(“param”);
对于(int i=0;i
我建议对其使用XPath查询。语法类似于/root/program/params/param[@name='name2']
。有关xpath设置,请参阅xpath看起来很有趣。我将研究这个解决方案
String xmlfile = "path\\to\\file.xml"
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(xmlfile);
//get the params element
Node params = doc.getElementsByTagName("params").item(0);
//get a list of nodes in the params element
NodeList param = params.getChildNodes();
import javax.xml.parsers.*;
import javax.xml.xpath.*;
import org.w3c.dom.*;
public class Demo {
public static void main(String[] args) throws Exception {
String xmlfile = "src/forum17753835/file.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(xmlfile);
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
Element element = (Element) xpath.evaluate("/root/program/params/param[@name='name2']", doc, XPathConstants.NODE);
System.out.println(element.getTextContent());
}
}
NodeList params = doc.getElementsByTagName("param");
for (int i = 0; i < params.getLength(); i++)
{
if (params.item(i).getAttributes().getNamedItem("name").getNodeValue().equals("name2"))
{
// do smth with element <param name='name2'>test2</param>
// that is params.item(i) in current context
}
}