私はWebサービスの初心者ですが、経験のある人なら誰でも次のことを手伝ってください。
OMIMRESTfulWebサービスから情報を取得しようとしているクライアントを作成しています。登録後に提供された主要なOMIMを使用しています。( http://omim.org/help/api)クライアントへの接続に成功しました。また、GETメソッドを使用すると、必要なデータをDOMドキュメントにフェッチできます。さらに、DOM全体をローカルディスク上のファイルに正常に書き込むことができました。ただし、DOMで使用可能な標準の解析機能を使用してDOMを操作することはできません。
例:NodeList nl = doc.getDocumentElement()を使用してルートノードを取得し、コンソールに出力することができます。しかし、ルートノードの最初の子を出力しようとすると、予期された子ノードではなくnullが返されます。
サンプルXMLフォーム:webservices-> DOM-> file
<?xml version="1.0" encoding="UTF-8" standalone="no"?><omim version="1.0">
<clinicalSynopsisList>
<clinicalSynopsis>
<mimNumber>100070</mimNumber>
<prefix>%</prefix>
</clinicalSynopsis>
</clinicalSynopsisList>
</omim>
以下の私のコードを見つけてください:
String path="http://api.omim.org:8000/api/clinicalSynopsis?mimNumber="+"100070"+"&include=clinicalSynopsis&format=xml&apiKey="+"<< xxxxx private key xxxxxxxxxx >> ";
URL url = new URL(path);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
InputStream is = conn.getInputStream();
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = docBuilder.parse(is);
Source src= new DOMSource(doc);
File file = new File("d:/text.xml");
Result rs = new StreamResult(file);
TransformerFactory tmf = TransformerFactory.newInstance();
Transformer trnsfrmr = tmf.newTransformer();
trnsfrmr.transform(src, rs);
System.out.println("XML file is created successfully");
System.out.println("The root element is :: "+doc.getDocumentElement().getNodeName());
NodeList nl=doc.getDocumentElement().getChildNodes();
System.out.println("child nodelist length::"+nl.getLength());
System.out.println("First child node name :: "+doc.getDocumentElement().getFirstChild().getNodeName());
System.out.println("Last child node name :: "+doc.getDocumentElement().getLastChild().getNodeName());
私が得た出力:-XMLファイルは正常に作成されましたルート要素は:: omim child nodelist length::3最初の子ノード名::#text最後の子ノード名::#text
取得した出力では、ルートノードは「omim」であり、3つの子があります。ただし、最初と最後の子名を出力しようとするとnullを返します。同様に、getParent()、getChild()、getSibling()メソッドが機能していません。
どんな助けでも大歓迎です。
ありがとうございました、