如何使用 JDOM 编写和获取具有相同名称的同一级别的所有 xml 元素
Posted
技术标签:
【中文标题】如何使用 JDOM 编写和获取具有相同名称的同一级别的所有 xml 元素【英文标题】:how to write and get all the xml elements in same level with same name using JDOM 【发布时间】:2014-09-27 15:13:33 【问题描述】:我的xml文件如下
<lexicon>
<lexiconElement>
<word>xxxx</word>
<tag>NN
<frequancy>3</frequancy>
</tag>
<tag>VB
<frequancy>2</frequancy>
</tag>
</lexiconElement>
</lexicon>
我需要知道如何在使用 JDOM 更新时将许多元素附加到同一 xml 文件中的同一级别,以及如何使用 JDOM 读取同一级别中具有相同名称的那些元素???
【问题讨论】:
你能用输入和输出xml更新你的问题吗?假设给定的 xml 是您的输入。您更新后的 xml 应该是什么样子。 更新可以通过几种方式进行。 1. 向 xml 添加新的我希望这就是你要找的。p>
try
SAXBuilder builder = new SAXBuilder();
File xmlFile = new File("D:\\your_file.xml");
Document doc = (Document) builder.build(xmlFile);
Element rootNode = doc.getRootElement();
Element lexiconElement = rootNode.getChild("lexiconElement");
// 1. add new <tag> elements to xml
Element newTag = new Element("your_new_tag").setText("your_new_tag_value");
lexiconElement.addContent(newTag);
// 2. Update the text between <frequancy> in perticular tag
//lexiconElement.getChild("tag").getChild("frequancy").setText("9");
// 2. Update the text between <frequancy> in all tag
List<Element> list = lexiconElement.getChildren("tag");
for(Element elm : list)
elm.getChild("frequancy").setText("324");
// 3. Update the text between <word>
lexiconElement.getChild("word").setText("yyyy");
XMLOutputter xmlOutput = new XMLOutputter();
xmlOutput.output(doc, new FileWriter("D:\\your_file.xml"));
System.out.println("*********Done************");
catch (IOException io)
io.printStackTrace();
catch (JDOMException e)
e.printStackTrace();
【讨论】:
以上是关于如何使用 JDOM 编写和获取具有相同名称的同一级别的所有 xml 元素的主要内容,如果未能解决你的问题,请参考以下文章
如何将相同的 SHA1 用于具有不同包名称的应用程序,作为另一个应用程序?
“Company.Model.User”类型和“Company.Core.Model.User”类型都具有相同的简单名称“User”,因此不能在同一模型中使用