如何更改已处理的xml文件的扩展名(使用eXist& cocoon)

时间:2010-02-17 10:31:29

标签: xml xml-serialization exists apache-cocoon

我对这整个网络内容都很陌生,所以如果我错过了一些重要的帖子,那就请好好发布。

简短:序列化后是否有可能更改已处理文件(eXist-DB)的名称?

在我的情况下,以下是对我的eXist-db的请求:

http://localhost:8080/exist/cocoon/db/caos/test.xml

我希望在序列化之后(xslt工作正常):

http://localhost:8080/exist/cocoon/db/caos/test.html

我正在使用followong sitemap.xmap with cocoon(希望这是它的责任)

        <map:match pattern="db/caos/**">
           <!-- if we have an xpath query -->
            <map:match pattern="xpath" type="request-parameter">
                <map:generate src="xmldb:exist:///db/caos/{../1}/#{1}"/>
                <map:act type="request">
                    <map:parameter name="parameters" value="true"/>
                    <map:parameter name="default.howmany" value="1000"/>
                    <map:parameter name="default.start" value="1"/>
                    <map:transform type="filter">
                        <map:parameter name="element-name" value="result"/>
                        <map:parameter name="count" value="{howmany}"/>
                        <map:parameter name="blocknr" value="{start}"/>
                    </map:transform>
                    <map:transform src=".snip./webapp/stylesheets/db2html.xsl">
                        <map:parameter name="block" value="{start}"/>
                        <map:parameter name="collection" value="{../../1}"/>
                    </map:transform>
                </map:act>
                <map:serialize type="html" encoding="UTF-8"/>
            </map:match>
            <!-- if the whole file will be displayed -->
            <map:generate src="xmldb:exist:/db/caos/{1}"/>
            <map:transform src="..snip../stylesheets/caos2soac.xsl">
                <map:parameter name="collection" value="{1}"/>
            </map:transform>
            <map:transform type="encodeURL"/>
            <map:serialize type="html" encoding="UTF-8"/> 
        </map:match>

所以我的问题是:在处理xml文件后,如何将test.xml扩展名更改为test.html

背景:我正在从某些xml-dbs中生成一些信息,这个信息将显示在html中(这是有效的),但我想在我生成之后更改一些信息HTML网站。为了使这个舒适,我想使用Jquery&amp;可编辑,但代码不适用于xml文件。保存生成的html不是一种选择。

提出任何建议[和|或]帮助

CC

编辑:全部阅读后:可能是,扩展名无关紧要,这只是端口8080的问题?我很困惑......

1 个答案:

答案 0 :(得分:1)

这是一种方式。

要明确的是,您希望在该映射中拾取db / caos / test.html:匹配上面的元素,对吗?但是你想传递test.xml

<map:match pattern="db/caos/**">更改为<map:match pattern="db/caos/**.html">。从那时起,{1}将包含“test”,因此您需要将{../1}更改为{../1}.xml

基本上,我使用map:match元素在{1}中的.html之前捕获了文件名的一部分。