Showing posts with label String tag) { int newFreq=0; int tagAvailability = 0; int wordAvaialbility = 0; try { if (new File("./src/Lexicon.xml").exists()) { Doc. Show all posts
Showing posts with label String tag) { int newFreq=0; int tagAvailability = 0; int wordAvaialbility = 0; try { if (new File("./src/Lexicon.xml").exists()) { Doc. Show all posts

XML file is not updating using the jdom



following is my java code for reading a xml file and updating some values in it.



public static void writeLexicon(String word, String tag) {
int newFreq=0;
int tagAvailability = 0;
int wordAvaialbility = 0;
try {
if (new File("./src/Lexicon.xml").exists()) {

Document readDoc = getXMLFile();
Element root = readDoc.getRootElement();
for (Element curElem : root.getChildren("lexiconElement")) {
if (word.equals(curElem.getChildText("word"))) { // word avaialble

List<Element> subEle = curElem.getChildren();

for (int i = 1; i < subEle.size(); i++) {
if (tag.equals(subEle.get(i).getChildText("tag"))) {

int curFreq = Integer.parseInt(subEle.get(i).getChildTextTrim("frequancy"));
newFreq = curFreq + 1;
subEle.get(i).getChild("frequancy").setText(String.valueOf(newFreq));
tagAvailability = 1;
//break;
}
}
if (tagAvailability == 0) {
Element newTag = new Element("tag").setText(tag);

Element newFrequancy = new Element("frequancy").setText("1");
newTag.addContent(newFrequancy);
curElem.addContent(newTag);
}

wordAvaialbility = 1;
}


}
if (wordAvaialbility == 0) {
Element lexiconElement = new Element("lexiconElement");
Element newWord = new Element("word").setText(word);

Element newTag = new Element("tag").setText(tag);

Element newFrequancy = new Element("frequancy").setText("1");
newTag.addContent(newFrequancy);
lexiconElement.addContent(newWord);
lexiconElement.addContent(newTag);

root.addContent(lexiconElement);
XMLOutputter xmlOutput = new XMLOutputter(Format.getPrettyFormat());
xmlOutput.output(readDoc, new FileOutputStream(new File("./src/Lexicon.xml")));


}

} else {

Document doc = new Document(); // create a JDOM document
String freq = "1";
Element theRoot = new Element("Lexicon"); // Creates a element named Lexicon and makes it the root
doc.setRootElement(theRoot);

Element lexiconElement = new Element("lexiconElement");
Element Word = new Element("word");
Element Tag = new Element("tag");
Element frequency = new Element("frequency");

Word.addContent(new Text(word));
Tag.addContent(new Text(tag));
frequency.addContent(new Text(freq));

Tag.addContent(frequency);
lexiconElement.addContent(Word);
lexiconElement.addContent(Tag);

theRoot.addContent(lexiconElement);
XMLOutputter xmlOutput = new XMLOutputter(Format.getPrettyFormat());
xmlOutput.output(doc, new FileOutputStream(new File("./src/Lexicon.xml")));



}


} catch (Exception e) {
System.out.println(e);
}
}


i need to get the value in frequancy tag and increment the value by one and add to same xml file. but it didnt work with the above code.


Read more ...