菜鸟提问:关于向XML文件中添加结点的问题,请高人向助!

999String999 2004-06-18 12:18:46
向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>这种形式?
应该怎样解决这个问题?

请高人帮忙!
万分感谢!
...全文
142 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
FlashMovie 2004-07-07
  • 打赏
  • 举报
回复
<Tag name="testTag"/>是标准的XML空元素
999String999 2004-06-18
  • 打赏
  • 举报
回复
自己顶
dtghh 2004-06-18
  • 打赏
  • 举报
回复
xml version="1.0" Recommendation
使用<Tag name="testTag"/>
不使用<Tag name="testTag"></Tag>
dtghh 2004-06-18
  • 打赏
  • 举报
回复
<Tag name="testTag"/>是标准的XML空元素呀
xiaoyusong 2004-06-18
  • 打赏
  • 举报
回复
呵呵,<Tag name="testTag"></Tag>与<Tag name="testTag"/>都是一样的,后者更加简练。
其实如果你的节点有下有其他节点变为xml才会出现前一种形式,而在对dom的操作中两者是没有区别的。
gdx 2004-06-18
  • 打赏
  • 举报
回复
<Tag name="testTag"></Tag>与<Tag name="testTag"/>有区别吗?
都是空节点.
关于XML文件操作可以用dom4j或jdom,有必要重复别人的劳动?
999String999 2004-06-18
  • 打赏
  • 举报
回复
再顶
shuneng 2004-06-18
  • 打赏
  • 举报
回复
gz

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧