Как изменить конкретное значение тега XML в Java?
я новичок в работе над xml.i использовал файл xml следующим образом:
<?xml version="1.0" encoding="UTF-8" ?>
- <root>
- <key>
<Question>Is the color of the car</Question>
<Ans>black?</Ans>
</key>
- <key>
<Question>Is the color of the car</Question>
<Ans>black?</Ans>
</key>
- <key>
<Question>Is the news paper</Question>
<Ans>wallstreet?</Ans>
</key>
- <key>
<Question>fragrance odor</Question>
<Ans>Lavendor?</Ans>
</key>
- <key>
<Question>Is the baggage collector available</Question>
<Ans />
</key>
</root>
из приведенного выше XML я хотел бы изменить только
<Ans>wallstreet?</Ans> as <Ans>WonderWorld</Ans>.
как я могу изменить wallstreet? как WonderWorld? через мое приложение Java.
я написал Java-метод, как показано ниже:
public void modifyNodeval(){
try{
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new File(path));
Node nodes1 = doc.getElementsByTagName("*");
for(int j=0;j<nodes1.getLength();j++)
{
//Get the staff element by tag name directly
Node nodes = doc.getElementsByTagName("key").item(j);
//loop the staff child node
NodeList list = nodes.getChildNodes();
for (int i = 0; i != list.getLength(); ++i)
{
Node child = list.item(i);
if (child.getNodeName().equals("Ans")) {
child.getFirstChild().setNodeValue("WonderWorld") ;
System.out.println("tag val modified success fuly");
}
}
}
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(path);
transformer.transform(source, result);
}
catch (Exception e)
{
e.printStackTrace();
}
}
Используя приведенный выше код, я могу изменить весь текст тега как чудо-мир, но я хочу изменить только wallstreet? как WonderWorld.
любое тело, пожалуйста, помогите мне .....