자바 파일에서 XML 파일의 일부 매개 변수를 수정하려고합니다. 모든 게시물에서 사람들이 태그 이름으로 검색 할 때 이러한 매개 변수를 수정하지만 내 경우에는 작동하지 않습니다.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>
내가 "이름"에 의해 매개 변수에 액세스 할 수 있습니까?
마지막으로 자바에서 내 코드는 다음과 같습니다
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.는
는 DOM 손으로 그것을 기록하지 마십시오 "ID"매개 변수를 수정합니다
. XPath를 다음 표현식과 함께 사용하십시오 :'// param [@ name = "id"]','// param [@ name = "type"]','// param [@ name = "bus"]'등. – EJP