私は非常に初心者であり、これらの簡単な質問には申し訳ありません。ユーザーからの助けを得ることを願っています。あなたの時間をありがとう!Javaアプリケーションを使用してXMLファイルを処理する際に直面する問題
Q1。コンソールで、コントロールサマリの結果 '5'が隣の行ではなく次の行に表示されます。私はこのようなコンソールの結果を得る方法を知ってもいいですか?[Control summary:5]?
Q2。 xml.fileに 'items'というタグがあり、 'item'とその内容をラップしています。タグ 'test'はルート要素ですが、この 'items'タグはどうですか?誰もそれは何ですか、どのようにコードでJavaアプリケーションに変換するか教えてください?
XMLファイル
<?xml version="1.0" encoding="utf-8"?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
\t xmlns:xsd="http://www.w3.org/2001/XMLSchema"
\t xmlns="http://www.stee.com.sg/q2.xsd">
\t <controlsummary>
\t \t <totalrecords>5</totalrecords>
\t </controlsummary>
\t <items>
\t \t <item>
\t \t \t <data>TEST1</data>
\t \t \t <data_datetime>20120901000000</data_datetime>
\t \t \t <total_a>492.00</total_a>
\t \t \t <total_a_in_unit>TONNES</total_a_in_unit>
\t \t \t <total_b>420.00</total_b>
\t \t \t <total_b_in_unit>TONNES</total_b_in_unit>
\t \t \t <loc_id>1</loc_id>
\t \t \t <loc_desc>Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch</loc_desc>
\t \t \t <company_id>6001</company_id>
\t \t \t <company_name>Great Real Estate pte ltd</company_name>
\t \t </item>
\t \t <item>
\t \t \t <data>TEST7</data>
\t \t \t <data_datetime>20120901000000</data_datetime>
\t \t \t <total_a>2228.00</total_a>
\t \t \t <total_a_in_unit>TONNES</total_a_in_unit>
\t \t \t <total_b>2260.00</total_b>
\t \t \t <total_b_in_unit>TONNES</total_b_in_unit>
\t \t \t <loc_id>5</loc_id>
\t \t \t <loc_desc>Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu</loc_desc>
\t \t \t <company_id>5010</company_id>
\t \t \t <company_name>Altitude Fulle Coverage</company_name>
\t \t </item>
\t \t <item>
\t \t \t <data>TEST3</data>
\t \t \t <data_datetime>20120901000000</data_datetime>
\t \t \t <total_a>1241.00</total_a>
\t \t \t <total_a_in_unit>TONNES</total_a_in_unit>
\t \t \t <total_b>1021.00</total_b>
\t \t \t <total_b_in_unit>TONNES</total_b_in_unit>
\t \t \t <loc_id>3</loc_id>
\t \t \t <loc_desc>Chargoggagoggmanchauggagoggchaubunagungamaugg</loc_desc>
\t \t \t <company_id>5111</company_id>
\t \t \t <company_name>Big Beeing Craze Food Mania</company_name>
\t \t </item>
\t \t <item>
\t \t \t <data>TEST5</data>
\t \t \t <data_datetime>20120901000000</data_datetime>
\t \t \t <total_a>550.00</total_a>
\t \t \t <total_a_in_unit>TONNES</total_a_in_unit>
\t \t \t <total_b>0.00</total_b>
\t \t \t <total_b_in_unit>TONNES</total_b_in_unit>
\t \t \t <loc_id>0</loc_id>
\t \t \t <loc_desc>Tweebuffelsmeteenskootmorsdoodgeskietfontein</loc_desc>
\t \t \t <company_id>73</company_id>
\t \t \t <company_name>Monotone Classic Paper Producer</company_name>
\t \t </item>
\t \t <item>
\t \t \t <data>TEST6</data>
\t \t \t <data_datetime>20120901000000</data_datetime>
\t \t \t <total_a>3664.00</total_a>
\t \t \t <total_a_in_unit>TONNES</total_a_in_unit>
\t \t \t <total_b>3450.00</total_b>
\t \t \t <total_b_in_unit>TONNES</total_b_in_unit>
\t \t \t <loc_id>6</loc_id>
\t \t \t <loc_desc>Pekwachnamaykoskwaskwaypinwanik</loc_desc>
\t \t \t <company_id>104</company_id>
\t \t \t <company_name>No Name Futuristic Para</company_name>
\t \t </item>
\t </items>
</test>
Javaアプリケーション
package question2_try1;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class ProcessXML {
\t public static void main (String[] args) {
\t \t
\t \t try {
\t \t \t File fXmlFile = new File("C:\\Users\\User\\Desktop\\ST eletronics\\Q2_20170206112222.xml");
\t \t \t DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
\t \t \t DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
\t \t \t Document doc = dBuilder.parse(fXmlFile);
\t \t \t
\t \t \t doc.getDocumentElement().normalize();
\t \t \t
\t \t \t System.out.println("Root element :" +doc.getDocumentElement().getNodeName());
\t \t \t
\t \t \t //controlsummary & items
\t \t \t
\t \t \t
\t \t \t System.out.println("Control summary :" +doc.getElementsByTagName("controlsummary").item(0).getTextContent());
\t \t \t
\t \t \t
\t \t \t
\t \t \t NodeList nList = doc.getElementsByTagName("item");
\t \t \t
\t \t \t System.out.println("----------------------------");
\t \t \t
\t \t \t for (int temp = 0; temp < nList.getLength(); temp++) {
\t \t \t \t Node nNode = nList.item(temp);
\t \t \t \t
\t \t \t \t System.out.println("\nCurrent Element :" + nNode.getNodeName());
\t \t \t \t if (nNode.getNodeType() == Node.ELEMENT_NODE) {
\t \t \t \t \t Element eElement = (Element) nNode;
\t \t \t \t \t System.out.println("Data : " + eElement.getElementsByTagName("data").item(0).getTextContent());
\t \t \t \t \t System.out.println("Data datetime : " + eElement.getElementsByTagName("data_datetime").item(0).getTextContent());
\t \t \t \t \t System.out.println("Total a : " + eElement.getElementsByTagName("total_a").item(0).getTextContent());
\t \t \t \t \t System.out.println("Total a in unit : " + eElement.getElementsByTagName("total_a_in_unit").item(0).getTextContent());
\t \t \t \t \t System.out.println("Total b : " + eElement.getElementsByTagName("total_b").item(0).getTextContent());
\t \t \t \t \t System.out.println("Total b in unit : " + eElement.getElementsByTagName("total_b_in_unit").item(0).getTextContent());
\t \t \t \t \t System.out.println("Loc id : " + eElement.getElementsByTagName("loc_id").item(0).getTextContent());
\t \t \t \t \t System.out.println("Loc desc : " + eElement.getElementsByTagName("loc_desc").item(0).getTextContent());
\t \t \t \t \t System.out.println("Company id : " + eElement.getElementsByTagName("company_id").item(0).getTextContent());
\t \t \t \t \t System.out.println("Company Name : " + eElement.getElementsByTagName("company_name").item(0).getTextContent());
\t \t \t \t }
\t \t \t }
\t \t \t
\t \t }catch (Exception e) {
\t \t e.printStackTrace(); \t
\t \t }
\t } \t
}
Console:
Root element :test
Control summary :
\t \t 5
----------------------------
Current Element :item
Data : TEST1
Data datetime : 20120901000000
Total a : 492.00
Total a in unit : TONNES
Total b : 420.00
Total b in unit : TONNES
Loc id : 1
Loc desc : Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch
Company id : 6001
Company Name : Great Real Estate pte ltd
Current Element :item
Data : TEST7
Data datetime : 20120901000000
Total a : 2228.00
Total a in unit : TONNES
Total b : 2260.00
Total b in unit : TONNES
Loc id : 5
Loc desc : Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu
Company id : 5010
Company Name : Altitude Fulle Coverage
Current Element :item
Data : TEST3
Data datetime : 20120901000000
Total a : 1241.00
Total a in unit : TONNES
Total b : 1021.00
Total b in unit : TONNES
Loc id : 3
Loc desc : Chargoggagoggmanchauggagoggchaubunagungamaugg
Company id : 5111
Company Name : Big Beeing Craze Food Mania
Current Element :item
Data : TEST5
Data datetime : 20120901000000
Total a : 550.00
Total a in unit : TONNES
Total b : 0.00
Total b in unit : TONNES
Loc id : 0
Loc desc : Tweebuffelsmeteenskootmorsdoodgeskietfontein
Company id : 73
Company Name : Monotone Classic Paper Producer
Current Element :item
Data : TEST6
Data datetime : 20120901000000
Total a : 3664.00
Total a in unit : TONNES
Total b : 3450.00
Total b in unit : TONNES
Loc id : 6
Loc desc : Pekwachnamaykoskwaskwaypinwanik
Company id : 104
Company Name : No Name Futuristic Para
それが唯一のポストずつ質問をするのが最善です。あなたの最初の質問では、改行と余分なスペースを避ける1つの方法は、 'lineSeedとスペースを含む' controlSummary'自体の代わりに 'controlSummary'の中の' totalRecords'タグを選択することです。 – Aaron
@Aaron、あなたのガイドラインに感謝します。次に、タグ内にをどのように記述する必要がありますか? –
yTze
ルート要素はまたはである必要がありますか?そのうちの1つがルート要素であれば、別の要素は単なる要素ですか? –
yTze