0

DOM アプローチを使用して JSP で XML を解析しようとしています。以下は XML です。

<?xml version="1.0" encoding="UTF-8"?>
<apis xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
    <api name="getFormFields" requesttype ="GET">
         <url>/fieldtype/</url>       
         <parameters>
             <parameter><![CDATA[fieldtype=textbox&fieldId=8668376496495]]></parameter>
          </parameters>
    </api>
 </apis>

タグを読み取り、パラメータ値を表示したいのです<parameters>が、できません。以下は、これを行うために使用している JSP です。この JSP は URL を表示し<api> namerequesttype. <parameters>また、送信をクリックすると、このデータをスクリプトに送信したいと思います。私はこれを行うことに失敗しています。

<%@page contentType="text/html;charset=UTF-8"%>
<%@page pageEncoding="UTF-8"%>
<%@ page session="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@page import="org.w3c.dom.*, javax.xml.parsers.* ,java.io.File,java.util.*, javax.servlet.http.*"%>
<%
    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
    Document doc = docBuilder.parse(new File(
    "C:\\Documents and Settings\\Desktop\\apc.xml"));
%>
<%!
    public boolean isTextNode(Node n){
        return n.getNodeName().equals("#text");
    }
%>
<html>
<head>
    <META http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title><fmt:message key="welcome.title"/></title>
    <link rel="stylesheet" href="<c:url value="/resources/blueprint/screen.css" />" type="text/css" media="screen, projection">
    <link rel="stylesheet" href="<c:url value="/resources/blueprint/print.css" />" type="text/css" media="print">

</head>
<body>
<script type="text/javascript">

var xmlStr="\n";

function showData()
{
    alert('here');


xmlStr="\n";
var pageNumber;
if(document.forms[0].services[0].checked||document.forms[0].services[1].checked)
{
 if(document.forms[0].services[1].checked)
 {
     alert(document.forms[0].services[0].checked);
     var urlData = document.getElementById('urlData').value;
        alert(urlData);

  }

}
}
</script>
<form name="myForm">
<h2><font color='green'>List of Service Api</font></h2>
        <table border="2">
            <tr>

                <th>Methods</th>
                    <th>Request Type</th>
                <th>URL</th>

            </tr>
                <%

                    doc.getDocumentElement().normalize();
                    Element  element = doc.getDocumentElement(); 
                    NodeList apiNodes = element.getChildNodes();     
                    for (int i=0; i<apiNodes.getLength(); i++){
                        Node nodeApi = apiNodes.item(i);

                        if (isTextNode(nodeApi))
                            continue;
                        NodeList url = nodeApi.getChildNodes(); 
                %>

            <tr>
            <td>

                 <input type="hidden" name="apiNames" value="<%= apiNodes.item(i).getAttributes().item(0) %>"/>
                <input type="radio" name="services" value="0"><%= apiNodes.item(i).getAttributes().item(0) %></td>
                <td><input type="hidden" name="requestType" value="<%= apiNodes.item(i).getAttributes().item(1) %>"/><%= apiNodes.item(i).getAttributes().item(1) %></td>
                <%
                    for (int j=0; j<url.getLength(); j++ ){
                        Node node = url.item(j);
                        if ( isTextNode(node)) 
                            continue;
                %>

                <td><input type="hidden" name="urlData" value="<%= node.getFirstChild().getNodeValue() %>"/><%= node.getFirstChild().getNodeValue() %></td>
                <%
                    } 
                %>



            </tr>
            <br>


                <%
                    }
                %>
                <td> <button name="SubmitRequest" onclick="showData();">Submit Request</button></td>
        </table>
     <textarea name="response" cols="150" rows="120"></textarea>
       </form>
     </body>
</html>
4

1 に答える 1