Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javadom修改xml文件_Java_Dom_Xml Parsing - Fatal编程技术网

javadom修改xml文件

javadom修改xml文件,java,dom,xml-parsing,Java,Dom,Xml Parsing,我想将一些节点添加到现有的xml文件中。 xml文件结构如下所示: <?xml version="1.0" encoding="utf-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="new2.xsl"?><patients> <patient> <stoixeia_astheni> <arithmos_eksetasis>

我想将一些节点添加到现有的xml文件中。 xml文件结构如下所示:

<?xml version="1.0" encoding="utf-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="new2.xsl"?><patients>
    <patient>
    <stoixeia_astheni>
        <arithmos_eksetasis>1</arithmos_eksetasis>
        <imerominia_eksetasis>11/12/2005</imerominia_eksetasis>
        <amka>14385</amka>
        <surname>aaa</surname>
        <name>aaa</name>
        <onoma_patros>aaa</onoma_patros>
        <imgennisis>15/03/1984</imgennisis>
        <diagnosi>aaa</diagnosi>
        <famagogi>depon</famagogi>
    </stoixeia_astheni>
    <stoixeia_epikoinonias>
        <dieuthinsi>aaa</dieuthinsi>
        <takodikas>11474</takodikas>
        <perioxi>aaa</perioxi>
        <stathero>2106425246</stathero>
        <kinito>-</kinito>
    </stoixeia_epikoinonias>
    <loipa_stoixeia>
        <fylo>aaa</fylo>
        <oikkatastasi>aaa</oikkatastasi>
        <epaggelma>aaa</epaggelma>
        <istoriko>-</istoriko>
        <sxolia>-</sxolia>
    </loipa_stoixeia>
    </patient>
    <patient>
    <stoixeia_astheni>
        <arithmos_eksetasis>2</arithmos_eksetasis>
        <imerominia_eksetasis>12/12/2005</imerominia_eksetasis>
        <amka>14325</amka>
        <surname>aaa</surname>
        <name>aaa</name>
        <onoma_patros>aaa</onoma_patros>
        <imgennisis>15/03/1984</imgennisis>
        <diagnosi>aaa</diagnosi>
        <famagogi>depon</famagogi>
    </stoixeia_astheni>
    <stoixeia_epikoinonias>
        <dieuthinsi>aaa</dieuthinsi>
        <takodikas>11474</takodikas>
        <perioxi>aaa</perioxi>
        <stathero>2106425246</stathero>
        <kinito>-</kinito>
    </stoixeia_epikoinonias>
    <loipa_stoixeia>
        <fylo>aaa</fylo>
        <oikkatastasi>aaa</oikkatastasi>
        <epaggelma>aaa</epaggelma>
        <istoriko>-</istoriko>
        <sxolia>-</sxolia>
    </loipa_stoixeia>
    </patient>
</patients>

1.
11/12/2005
14385
aaa
aaa
aaa
15/03/1984
aaa
德蓬
aaa
11474
aaa
2106425246
-
aaa
aaa
aaa
-
-
2.
12/12/2005
14325
aaa
aaa
aaa
15/03/1984
aaa
德蓬
aaa
11474
aaa
2106425246
-
aaa
aaa
aaa
-
-
我正在尝试类似于:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    String[] elem;
    elem = new String[20];
    elem [1]="arithmos_eksetasis";
    elem [2]="imerominia_eksetasis";
    elem [3]="amka";
    elem [4]="surname";
    elem [5]="name";
    elem [6]="onoma_patros";
    elem [7]="imgennisis";
    elem [8]="diagnosi";
    elem [9]="famagogi";
    elem [10]="dieuthinsi";
    elem [11]="takodikas";
    elem [12]="perioxi";
    elem [13]="stathero";
    elem [14]="kinito";
    elem [15]="fylo";
    elem [16]="oikkatastasi";
    elem [17]="epaggelma";
    elem [18]="istoriko";
    elem [19]="sxolia";

    try {
        String filepath = "C:\\Users\\Chris\\Desktop\\tsiou\\workspace\\askhsh3\\WebContent\\askisi3.xml";

        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
        Document doc = docBuilder.parse(filepath);


        //Node staff = doc.getElementsByTagName("staff").item(0);


        // append a new node to staff
        Document doc2 = docBuilder.newDocument();
        Element patient = doc2.createElement("patient");

        Element st_as = doc2.createElement("stoixeia_astheni");
        for(int i=1;i<=9;i++){
            Element tmp= doc2.createElement(elem[i]);
            tmp.appendChild(doc2.createTextNode("aaa"));
            st_as.appendChild(tmp);
        }
        Element st_ep = doc2.createElement("stoixeia_epikoinonias");
        for(int i=10;i<=15;i++){
            Element tmp= doc2.createElement(elem[i]);
            tmp.appendChild(doc2.createTextNode("aaa"));
            st_ep.appendChild(tmp);     
        }
        Element st_lp = doc2.createElement("loipa_stoixeia");
        for(int i=16; i<=19;i++){
            Element tmp= doc2.createElement(elem[i]);
            tmp.appendChild(doc2.createTextNode("aaa"));
            st_lp.appendChild(tmp);     
        }
        patient.appendChild(st_as);
        patient.appendChild(st_ep);
        patient.appendChild(st_lp);
        doc.importNode(patient,true);

        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer trans = tf.newTransformer();
        OutputStream out = new FileOutputStream(filepath);
        trans.transform(new DOMSource(doc), new StreamResult(out));

       } catch (ParserConfigurationException pce) {
        pce.printStackTrace();
       } catch (TransformerException tfe) {
        tfe.printStackTrace();
       } catch (IOException ioe) {
        ioe.printStackTrace();
       } catch (SAXException sae) {
        sae.printStackTrace();
       }


    response.setContentType("text/html");
    PrintWriter pw = response.getWriter();

}
protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
//TODO自动生成的方法存根
字符串[]元素;
elem=新字符串[20];
元素[1]=“算术”;
elem[2]=“imerominia_eksetasis”;
elem[3]=“amka”;
elem[4]=“姓氏”;
元素[5]=“名称”;
elem[6]=“onoma_patros”;
elem[7]=“imgennisis”;
元素[8]=“诊断”;
elem[9]=“famagogi”;
elem[10]=“dieuthinsi”;
elem[11]=“takodikas”;
elem[12]=“perioxi”;
elem[13]=“stathero”;
elem[14]=“kinito”;
元素[15]=“fylo”;
elem[16]=“oikkatastasi”;
elem[17]=“epaggelma”;
elem[18]=“istoriko”;
elem[19]=“sxolia”;
试一试{
String filepath=“C:\\Users\\Chris\\Desktop\\tsiou\\workspace\\askhsh3\\WebContent\\askisi3.xml”;
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docFactory.newDocumentBuilder();
Document doc=docBuilder.parse(文件路径);
//节点staff=doc.getElementsByTagName(“staff”)。项(0);
//将新节点附加到staff
Document doc2=docBuilder.newDocument();
元素patient=doc2.createElement(“患者”);
元素st_as=doc2.createElement(“stoixeia_-insulfi”);

对于(inti=1;i代替
doc.importNode(patient,true);
,请尝试以下操作:

//Find existing parent node
Node patientsNode = doc.getElementsByTagName("patients").item(0);

//append the new child node
patientsNode.appendChild(patient); 

我正在使用类似的代码,它工作得非常好。

看看JaxB和谷歌如何对对象进行marshall和unmarshall。这会让生活变得更简单。错误:Error\u DOCUMENT\u ERR:一个节点在不同的文档中使用,而不是创建它的文档。@user2428997您不需要使用
doc2
DOCUMENT来创建元素doc2=docBuilder.newDocument();
。使用
doc
本身(
Element patient=doc.createElement(“patient”);
)创建
patient
元素,然后将其追加。