2017-01-16 4 views
0

Я пытаюсь вставить строковое значение в XML-файл, но я не получаю точно, как вставить с помощью java.Вставка строки в файл с помощью java

textFieldChoose.setText(fileChooser.getSelectedFile().toString()); 

        String str=""; 

        final JFrame msgframe= new JFrame(); 
        msgframe.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
        str= textFieldChoose.getText(); 
        JOptionPane.showMessageDialog(textFieldChoose, str); 
        ClassLoader classLoader = getClass().getClassLoader(); 
        str= textFieldChoose.getText(); 

Я могу сохранить значение в строке. Мне нужно заменить это значение каждый раз, когда мое приложение будет выбирать другое значение в строке.

XML: -

?xml version="1.0" encoding="UTF-8"?> 

<project name="org.world.rg" default="rg.init" basedir="."> 

    <property name="dita.dir" location="${basedir}/../../.."/> 

    <target name="rg.init" description="build PDF" depends="pdf"/> 


    <target name="pdf" description="build PDF"> 
    <ant antfile="${dita.dir}/build.xml"> 
     <property name="args.input" location=""/> 

Мне нужно вставить это значение строки в location =""/>. каковы возможные пути?

ответ

0

Вы можете использовать выражение XPATH обновить этот элемент:

//project/target/ant/property ... 

How to read XML using XPath in Java

+0

Я использую этот XPath xPath = XPathFactory.newInstance(). NewXPath(); Строковое выражение = "/ project/target [1]/ant/property/@ location"; Узел узла = (узел) xPath.evaluate (выражение, документ, XPathConstants.NODE); \t node.setTextContent (str); 'но перед исключениями. Можете ли вы указать правильный способ отслеживания тегов в соответствии с моим xml. –

+0

Атрибут location должен находиться в скобках: // Parent [@ id = '1']/Children/child [@location] – itstata

+0

Выбрасывание большого количества исключений –

0

Простой способ с Java 8 API файлов, но я не думаю, что это самое лучшее, что было бы:

1) прочитать файл 2) заменить значение 3) написать файл

byte[] fileContent = Files.readAllBytes(Paths.get("example.xml")); 
String content = new String(fileContent) 
        .replace("location =\"\"", "location =\"" + str + "\""); 
Files.write(Paths.get("example.xml"), xmlString.getBytes()); 
+0

Можете ли вы уточнить этот параметр? 'location = \" \ "", "location = \" "+ str +" \ "") ' –

+0

Я старался быть простым, это просто использование метода replace, который имеет объект String в java. –

+0

Да, я получил тебя, но мне нужно понять этот способ передачи местоположения. '(Location = \?" \ "??", "location = \"? "+ Str +" \ "?") ' –

Смежные вопросы