菜鸟提问:关于向XML文件中添加结点的问题,请高人向助!
向XML文件添加结点的CLASS
public class AddElement
{
private String strXmlFileName;
public TagMaintenance()
{
}
public void setFileName(String fileName)
{
strXmlFileName = fileName;
}
public void addTag(String tagName)
{
Document document = transformXmlToDom();
Element root = document.getDocumentElement();
Element tag = document.createElement("Tag");
tag.setAttribute("name",tagName);
root.appendChild(tag);
transformDomToXml(document);
}
private Document transformXmlToDom()
{
Document document = null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse( new File(strXmlFileName) );
}
catch (SAXException sxe)
{
Exception exc = sxe;
if(sxe.getException() != null)
exc = sxe.getException();
exc.printStackTrace();
}
catch (ParserConfigurationException pce)
{
System.out.println(pce.getMessage());
}
catch (IOException ioe)
{
System.out.println(ioe.getMessage());
}
return document;
}
private void transformDomToXml(Document document)
{
try
{
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(strXmlFileName));
transformer.transform(source,result);
}
catch(TransformerConfigurationException tce)
{
System.out.println(" " + tce.getMessage());
}
catch(TransformerException te)
{
System.out.println(" " + te.getMessage());
}
}
}
做测试用的CLASS
public class Test
{
public Test()
{
}
public static void main(String[] args)
{
TagMaintenance addElement = new AddElement();
addElement.setFileName("Tags.xml");
addElement.addTag("testTag");
}
}
添加结点后的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<Tags>
<Tag name="first">
<element>name</element>
</Tag>
<Tag name="second">
<element>name</element>
<element>id</element>
</Tag>
<Tag name="testTag"/></Tags>
为什么添加的结点是<Tag name="testTag"/>这种形式,
而不是<Tag name="testTag"></Tag>这种形式?
应该怎样解决这个问题?
请高人帮忙!
万分感谢!