Zmena hodnoty elementu v XML – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zmena hodnoty elementu v XML – Java – Fórum – Programujte.comZmena hodnoty elementu v XML – Java – Fórum – Programujte.com

 

vlado09910
Návštěvník
11. 3. 2010   #1
-
0
-

Ahojte, vie niekto sposob ako zmenit v xml hodnotu elementu pomocou Java a xpath?
Niekde som aj nasiel na nete metodu setValue() ale nezafungovalo to... konkretne:
<product>
<nazov>Panasonic</nazov>
</product>

ako tu zmenim Panasonic na BENQ

Skusal som to takto: http://www.java2s.com/Tutorial/Java/0440__XML/GetandsetvaluethroughXPath.htm
nejak to upravit pretoze v tom priklade sa meni len atribut elementu..
Dakujem za rady:-)
PS napadlo ma aj ze vytvorim novy element a potom tento zmazem a pod... ale nejak to nejde...

Nahlásit jako SPAM
IP: 62.168.64.–
liborb
~ Redaktor
+18
Guru
11. 3. 2010   #2
-
0
-




Node textNode = (Node)xpath.evaluate("/product/nazov/text()", inputSource, XPathConstants.NODE);

textNode.setNodeValue("BENQ");

Nahlásit jako SPAM
IP: 85.207.166.–
vlado09910
Návštěvník
11. 3. 2010   #3
-
0
-

To liborb : nejde to

DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = documentBuilder.parse(new File("produkty.xml"));
XPathFactory xPathFactory = XPathFactory.newInstance();
XPath xPath = xPathFactory.newXPath();
Node textNode = (Node)xPath.evaluate("/product/nazov/text()", document, XPathConstants.NODE);
textNode.setNodeValue("BENQ");
System.out.println("Je to OK");

cele to mam takto, este mi to napise na konzolu:Je to OK cize to ani nejde do vynimky ani nic take... ale ten text neprepise... netreba to xml nejak odomknut alebo co?

produkty.xml vyzera takto
<?xml version="1.0" encoding="utf-8" ?>
<product>
<nazov>Panasonic</nazov>
</product>

ja to samozrejme robim ako iny programik kde budem do xml ukladat niektore osobne nastavenia uzivatela, co by sa dalo urobit aj cez txt ale xml je krajsie:-)

Nahlásit jako SPAM
IP: 62.168.64.–
vlado09910
Návštěvník
14. 3. 2010   #4
-
0
-

To vlado0991 : uz som na to prisiel :
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(
new InputSource("produkty.xml"));

XPath xpath = XPathFactory.newInstance().newXPath();
NodeList nodes = (NodeList) xpath.evaluate("/product/nazov", doc,
XPathConstants.NODESET);

for (int idx = 0; idx < nodes.getLength(); idx++) {
nodes.item(idx).setTextContent(hodnota);
}
Transformer xformer = TransformerFactory.newInstance().newTransformer();
xformer.transform(new DOMSource(doc), new StreamResult(new File("produkty.xml")));

kde String hodnota je nova hodnota (napr. BENQ)
vlastny tranformujem povodne xml do noveho (ale s rovnakym nazvom:-) )

Nahlásit jako SPAM
IP: 92.245.193.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý