我需要用TrAX用Jave编写代码,以便将一个XML转换成另一个XML。
首先,XML包含有关员工的信息(姓名、薪资)。第二个XML应该只包含来自键盘的工资超过X,X的员工。
你能帮我完成这个任务吗?或者用Java给我举个例子?
发布于 2014-05-27 07:25:16
data.xml
<?xml version="1.0" encoding="utf-8" ?>
<employees-list> <employee>
<name>Christopher Abani</name>
<salary>3000</salary>
</employee>
<employee>
<name>Sait Faik Abasıyanık</name>
<salary>10000</salary>
</employee>
<employee>
<name>Christina Abbey</name>
<salary>2100</salary>
</employee>
<employee>
<name>Edward Abbey</name>
<salary>2300</salary>
</employee>
<employee>
<name>Lynn Abbey</name>
<salary>2000</salary>
</employee>
<employee>
<name>Edwin A. Abbott</name>
<salary>1000</salary>
</employee>
</employees-list>input.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='xml' indent='yes'/>
<!-- Receives the id of the menu being rendered. -->
<xsl:param name="MinSalary" />
<xsl:template match="/">
<HTML>
<body>
<xsl:for-each select="employees-list/employee[salary>$MinSalary]">
<employee>
<name><xsl:value-of select="name"/></name>
<salary><xsl:value-of select="salary"/></salary>
</employee>
</xsl:for-each>
</body>
</HTML>
</xsl:template>
</xsl:stylesheet>trans.java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class trans {
public static void main(String[] args) throws Exception {
TransformerFactory factory = TransformerFactory.newInstance();
Source xsl = new StreamSource("input.xsl");
Transformer transformer = factory.newTransformer(xsl);
Source xml = new StreamSource("data.xml");
Result result = new StreamResult("out.xml");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Input min salary:");
String minSalary = reader.readLine();
transformer.setParameter("MinSalary", minSalary);
transformer.transform(xml, result);
}
}out.xml
<?xml version="1.0" encoding="UTF-8"?><HTML>
<body>
<employee>
<name>Christopher Abani</name>
<salary>3000</salary>
</employee>
<employee>
<name>Sait Faik Abasıyanık</name>
<salary>10000</salary>
</employee>
<employee>
<name>Christina Abbey</name>
<salary>2100</salary>
</employee>
<employee>
<name>Edward Abbey</name>
<salary>2300</salary>
</employee>
</body>
</HTML>https://stackoverflow.com/questions/23864828
复制相似问题