首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java ( XSLT )XSLT转换中提供TrAX解析器示例

在Java ( XSLT )XSLT转换中提供TrAX解析器示例
EN

Stack Overflow用户
提问于 2014-05-26 07:25:40
回答 1查看 1K关注 0票数 0

我需要用TrAX用Jave编写代码,以便将一个XML转换成另一个XML。

首先,XML包含有关员工的信息(姓名、薪资)。第二个XML应该只包含来自键盘的工资超过X,X的员工。

你能帮我完成这个任务吗?或者用Java给我举个例子?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-27 07:25:16

data.xml

代码语言:javascript
复制
 <?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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
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

代码语言:javascript
复制
<?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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23864828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档