以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  xsl问题求助  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=49161)


--  作者:小猪笨笨
--  发布时间:6/28/2007 3:26:00 PM

--  xsl问题求助
在xml文件中,关于<para>的显示为:
  <para>
  ……
  </para>
<para>和内容之间没有空格,似乎是回车之类的东东。

怎样在xsl文件中定义,使得的xml文件中
<para>
……
</para>
调整成<para>……</para>

-_-!! 这个问题咋解决呢?
麻烦大虾解答!!!

送花花


--  作者:Qr
--  发布时间:6/28/2007 4:15:00 PM

--  
XML2XML是偶讨厌做的一件事。特别是遇到是回车之类的东东,XSL几乎无法处理。况且通过XSL转换后还不方便存盘,要是偶,直接COPY到WORD中进行替换

但你这个问题似乎也没涉及到回车之类的东东,直接当作一般XML文档进行XML2XML转换即可。


--  作者:小猪笨笨
--  发布时间:6/28/2007 4:21:00 PM

--  
我做的是从html到xml的转换
在xsl文件里把<p>转换为<para>
比如原来html文件里   <p>dfjlagjl</p>
转换后就变成了
<para>
dfjlagjl
</para>
请问一下,这个问题怎么解决呢?
我试了在xsl文件里加上 <xsl:strip-space elements="p"/>可是转换后没有任何效果。
--  作者:Qr
--  发布时间:6/28/2007 4:45:00 PM

--  
偶只有将XML转为HTML的份,从来不涉足HTML2XML。故没有什么好的建议了。
--  作者:ioyichen
--  发布时间:6/28/2007 4:45:00 PM

--  
<para><xsl:value-of select="normalize-space(//p)"/></para>,先将<p>元素里面的文本取出来,去调空格,回车,赋值给<para>
--  作者:小猪笨笨
--  发布时间:6/28/2007 4:51:00 PM

--  
我试下,先谢谢ioyichen哈
--  作者:小猪笨笨
--  发布时间:6/28/2007 5:11:00 PM

--  
<xsl:template match="p">
        <para>
            <xsl:value-of select="normalize-space(//p)"/>
        </para>
    </xsl:template>

可是如果这么写,如果html文件里有多个p,那么转换后所有的p都是显示第一行的内容,怎么改这个xsl文件呢?谢谢了~~~~


--  作者:ioyichen
--  发布时间:6/28/2007 5:17:00 PM

--  
有多个肯定是用循环啦!上面的只是举个例子,关键是使用normalize-space 去掉空格回车,循环可以使用xsl:for-each 或xsl:apply-templates 个人建议使用xsl:for-each
--  作者:小猪笨笨
--  发布时间:6/28/2007 5:35:00 PM

--  
-_-!!!

我不知道怎么写,麻烦告诉一下啦,刚开始学这个东东

谢谢啦


--  作者:ioyichen
--  发布时间:6/28/2007 5:42:00 PM

--  
事例:
xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<root>
 <p>100
 
 </p>
 <p>1000
 
 
 </p>
</root>

xsl文件:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:output method="html" omit-xml-declaration="yes"/>
 <xsl:template match="/">
  <xsl:for-each select="root/p">
   <para><xsl:value-of select="normalize-space(.)"/></para>
  </xsl:for-each>
 </xsl:template>
</xsl:stylesheet>


--  作者:小猪笨笨
--  发布时间:6/28/2007 5:42:00 PM

--  
搞定了,嘿嘿,谢谢ioyichen
--  作者:小猪笨笨
--  发布时间:6/28/2007 5:43:00 PM

--  
<xsl:template match="p">
             <para>
                <xsl:value-of select="normalize-space(.)"/>
            </para>
    </xsl:template>

选取当前元素就可以了


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms