私は、XMLファイルのいくつかのパラメータをjavaファイルから変更しようとしています。すべての投稿で私は人々がタグ名でそれを検索するこれらのパラメータを変更することがわかったが、私の場合は動作しません。javaを使用してxmlノードの値を変更するには? (タグ名ではない)
私のxmlファイルの例は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<comp>
<params>
<param name="id">1</param>
<param name="type">aaaa</param>
<param name="bus">123</param>
</params>
</comp>
私は「名前」でパラメータにアクセスするにはどうすればよいですか?
最後に、Javaでの私のコードは次のとおりです。
public void modifyXml(){
String path = "C:\\Workspace\\Project\\data.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(path);
Node comp = doc.getFirstChild();
Node params = doc.getElementsByTagName("params").item(0);
loadParams(params);
}
private void loadParams(Node params) {
NodeList list = params.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
Node url = list.item(i);
String nodeName = url.getNodeName();
NamedNodeMap attributes = url.getAttributes();
//System.out.println(attributes.item(i));
if (nodeName.equalsIgnoreCase("param") && url.getFirstChild()!=null) {
ServerProperties.getExternalParamsMap().put(attributes.getNamedItem("name").getNodeValue(), url.getFirstChild().getNodeValue());
System.out.println((String) url.getFirstChild().getNodeName());
System.out.println(url.getFirstChild().getNodeValue());
}
}
}
それは私に、ノードの値ではなく、パラメータの名前を出力します。パラメータ名は次のように表示されます: "#text"
ありがとう!
よろしくお願いいたします。
エリックP.は
を変更します。 XPathを次の式で使用してください: '// param [@ name =" id "]'、 '// param [@ name =" type "]'、 '// param [@ name =" bus "]'など – EJP