我需要帮助了解使用java将XML文件转换为CSV文件所涉及的步骤.这是一个XML文件的示例
<?xml version="1.0"?>
<Sites>
<Site id="101" name="NY-01" location="New York">
<Hosts>
<Host id="1001">
<Host_Name>srv001001</Host_Name>
<IP_address>10.1.2.3</IP_address>
<OS>Windows</OS>
<Load_avg_1min>1.3</Load_avg_1min>
<Load_avg_5min>2.5</Load_avg_5min>
<Load_avg_15min>1.2</Load_avg_15min>
</Host>
<Host id="1002">
<Host_Name>srv001002</Host_Name>
<IP_address>10.1.2.4</IP_address>
<OS>Linux</OS>
<Load_avg_1min>1.4</Load_avg_1min>
<Load_avg_5min>2.5</Load_avg_5min>
<Load_avg_15min>1.2</Load_avg_15min>
</Host>
<Host id="1003">
<Host_Name>srv001003</Host_Name>
<IP_address>10.1.2.5</IP_address>
<OS>Linux</OS>
<Load_avg_1min>3.3</Load_avg_1min>
<Load_avg_5min>1.6</Load_avg_5min>
<Load_avg_15min>1.8</Load_avg_15min>
</Host>
<Host id="1004">
<Host_Name>srv001004</Host_Name>
<IP_address>10.1.2.6</IP_address>
<OS>Linux</OS>
<Load_avg_1min>2.3</Load_avg_1min>
<Load_avg_5min>4.5</Load_avg_5min>
<Load_avg_15min>4.2</Load_avg_15min>
</Host>
</Hosts>
</Site>
</Sites>
Run Code Online (Sandbox Code Playgroud)
这是生成的CSV文件.
site_id, site_name, site_location, host_id, host_name, ip_address, operative_system, load_avg_1min, load_avg_5min, load_avg_15min
101, NY-01, New York, 1001, srv001001, 10.1.2.3, Windows, 1.3, 2.5, 1.2
101, NY-01, New York, 1002, srv001002, 10.1.2.4, Linux, 1.4, …Run Code Online (Sandbox Code Playgroud) 我想使用XSLT将XML转换为CSV,但是在针对我的输入应用标题为XML To CSV XSLT的SO线程中的XSL时:
<WhoisRecord>
<DomainName>127.0.0.1</DomainName>
<RegistryData>
<AbuseContact>
<Email>abuse@iana.org</Email>
<Name>Internet Corporation for Assigned Names and Number</Name>
<Phone>+1-310-301-5820</Phone>
</AbuseContact>
<AdministrativeContact i:nil="true"/>
<BillingContact i:nil="true"/>
<CreatedDate/>
<RawText>...</RawText>
<Registrant>
<Address>4676 Admiralty Way, Suite 330</Address>
<City>Marina del Rey</City>
<Country>US</Country>
<Name>Internet Assigned Numbers Authority</Name>
<PostalCode>90292-6695</PostalCode>
<StateProv>CA</StateProv>
</Registrant>
<TechnicalContact>
<Email>abuse@iana.org</Email>
<Name>Internet Corporation for Assigned Names and Number</Name>
<Phone>+1-310-301-5820</Phone>
</TechnicalContact>
<UpdatedDate>2010-04-14</UpdatedDate>
<ZoneContact i:nil="true"/>
</RegistryData>
</WhoisRecord>
我最终得到:
abuse@iana.orgInternet Corporation for Assigned Names and Number+1-310-301-5820,
,
,
,
...,
4676 Admiralty Way, Suite 330Marina del ReyUSInternet Assigned Numbers …Run Code Online (Sandbox Code Playgroud)