Android XSL转换为空指针,但可在桌面上使用

Android XSL转换为空指针,但可在桌面上使用,第1张

概述我在android上开发xslt.users.xml文件:<?xmlversion="1.0"encoding="utf-8"?><users><user><fname>somename</fname><hobbies><hobby>Movie</hobby><hobby>Trekking&l

我在android上开发xslt.
users.xml文件:

<?xml version="1.0" enCoding="utf-8"?><users>  <user>    <fname>somename</fname>    <hobbIEs>      <hobby>MovIE</hobby>      <hobby>Trekking</hobby>    </hobbIEs>  </user></users>

users.xsl文件

<xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/transform">    <xsl:template match="/">        <HTML>            <body>                <xsl:for-each select="users/user">                    <h2>                        <xsl:value-of select="fname" />                    </h2>                    <h3>HobbIEs :</h3>                    <xsl:for-each select="hobbIEs/hobby">                        <xsl:value-of select="." />                        <xsl:if test="position() != last()">                            <xsl:text> , </xsl:text>                        </xsl:if>                    </xsl:for-each>                </xsl:for-each>            </body>        </HTML>    </xsl:template></xsl:stylesheet>

androID布局uservIEw.xml

<?xml version="1.0" enCoding="utf-8"?><linearLayout    xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:orIEntation="vertical"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent">    <WebVIEw        androID:ID="@+ID/userwebvIEw"        androID:layout_wIDth="fill_parent"        androID:layout_height="fill_parent" /></linearLayout>

AndroID活动

public class UserdisplayActivity extends Activity {    WebVIEw userVIEw;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.userwebvIEw);        userVIEw = (WebVIEw) findVIEwByID(R.ID.userwebvIEw);        loadtransformedHTML();    }    private voID loadtransformedHTML() {        try {            String HTMLtransformed=UserXmltransform.gettransformedHTML();            userVIEw.loadData(HTMLtransformed, "text/HTML", "utf-8");        } catch (transformerException e) {            e.printstacktrace();        }    } }

和UserXmltransform类

public class UserXmltransform {    static final String sdpath=Environment.getExternalStorageDirectory().getabsolutePath();    static final file xmlfileF = new file(sdpath+"/users.xml");    static final file xsltfileF = new file(sdpath+"/users.xsl");    public static String gettransformedHTML() throws transformerException {        Source srcXml = new StreamSource(xmlfileF);        Source srcXsl = new StreamSource(xsltfileF);        StringWriter writer = new StringWriter();        Result result = new StreamResult(writer);        transformerFactory tFactory = transformerFactory.newInstance();        transformer transformer = tFactory.newtransformer(srcXsl);        transformer.transform(srcXml, result);        return writer.toString();    }}

在使用完全相同的xml和xsl文件作为Java项目进行测试时,可以使用UserXmltransform.java代码成功运行该转换.

在androID应用中,文件位于适当的位置.
但是在运行NullPointer时会抛出异常

transformer.transform(srcXml, result); 

UserXmltransform.java.为什么这个转换器对象在androID中变为null.

我不知道是什么问题.请帮我.
[添加]我正在使用SDK 2.2

解决方法:

我在users.xsl中做了以下更改:

<xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/transform">

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/transform" version="1.0">

问题解决了.

但是仍然不知道为什么这会导致错误.

总结

以上是内存溢出为你收集整理的Android XSL转换为空指针,但可在桌面上使用全部内容,希望文章能够帮你解决Android XSL转换为空指针,但可在桌面上使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1095392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存