用XSL将XML文档中CDATA注释输出为HTML文本|超详细新手实操指南

文章目录CloseOpen

    • 先把CDATA和XSL的关系掰扯清楚,不然操作都是瞎摸
      • 、)本来是要显示成网页元素的,可如果不做处理,这些标签会被转义成<h3>这种字符,网页上就没法正常显示。
        再来说XSL——它全称是“可扩展样式表语言”,相当于XML的“翻译器”。你可以用XSL写一套“翻译规则”,告诉计算机:“把XML里的节点转换成HTML的,把CDATA里的内容直接当成HTML输出”。简单讲,XSL就是帮你把XML里的内容“翻译”成网页能识别的格式的工具。
        我朋友当初为啥踩坑?就是没搞懂这层关系——他以为CDATA会自动转成HTML,结果忽略了“需要用XSL告诉计算机怎么处理CDATA”这一步。后来我跟他解释清楚后,他拍着大腿说:“原来不是CDATA的问题,是我没给翻译器‘说明书’啊!”
        手把手教你写XSL模板,从0到1转出正确HTML
        接下来进入实操环节,我会用朋友的产品说明书XML举例,一步步教你写XSL模板。先看一下他的XML结构(简化版):

        智能保温杯

        <![CDATA[
        产品特点

        304不锈钢内胆,保温6-12小时
        触摸显温,防烫设计
        USB-C充电,续航30天

        注:充电时请使用原装数据线。
        ]]>

        他的需求是把这个XML转成HTML,让里的CDATA内容显示成正常的标题、列表和段落。下面开始写XSL模板:
        第一步:新建XSL文件,写基础结构
        首先新建一个后缀为.xsl的文件(比如叫product_transform.xsl),开头要写XML声明和XSL根元素——这是XSL的“骨架”,必须得有:

        <!-这里写翻译规则 >

        注意两点:一是encoding要和XML文件的encoding一致(比如都是UTF-8),不然会乱码;二是xmlns:xsl这个命名空间必须加,不然XSL解析器不认识你的规则。
        第二步:写“根模板”,定义输出的HTML结构
        根模板是XSL的“入口”,用来定义最终输出的HTML整体结构。你可以把它理解成“给网页搭框架”:

        <!-这里放CDATA内容的处理规则 >

        这里的是关键——它告诉XSL:“去找到product下的description节点,用对应的模板处理它”。
        第三步:写“description模板”,处理CDATA内容
        最核心的一步来了!我们要写一个模板,专门处理description节点里的CDATA内容。直接上代码:

        <!-重点:disable-output-escaping="yes" >

        这里有两个关键知识点:
        :“.”代表当前节点(也就是description)的内容,这句话的意思是“取出description里的所有内容”。
        disable-output-escaping="yes":这是处理CDATA的“ magic属性”!默认情况下,XSL会把<、>这些特殊字符转义成<、>(比如把转成<h3>),加了这个属性后,XSL会“保留原始字符”,让CDATA里的HTML标签直接生效。
        我朋友当初就是没加这个属性,结果输出的全是转义字符。后来我帮他加上之后,网页上立刻显示出了正常的标题和列表,他当时眼睛都亮了:“原来就差这一句话啊!”
        避坑!我踩过的3个CDATA转HTML的雷区
        虽然步骤看起来简单,但实际操作中很容易踩雷——我帮朋友和客户处理过5次这类问题, 了3个最常见的坑,你一定要避开:
        雷区1:忘记加disable-output-escaping="yes"
        这是新手最常犯的错!我第一次帮朋友处理时,也忘了加这个属性,结果输出的网页上全是<h3>这种字符。后来查了W3C的XSLT 1.0规范(https://www.w3.org/TR/xslt-10/,nofollow)才知道:XSL的默认行为是“转义特殊字符”,目的是防止XML解析错误,但我们需要的是“保留HTML标签”,所以必须手动关闭这个默认行为。
        雷区2:XML和XSL的编码不一致
        去年帮一个外贸客户处理时,遇到过更奇葩的问题——输出的HTML里中文全是问号。我打开他的XML文件一看,第一行是,但他的XSL文件里写的是encoding="UTF-8"。问题就出在这:XML用GBK编码,XSL用UTF-8编码,两者不兼容,导致中文无法正确解析。后来我把XSL的encoding改成GBK,问题立刻解决了。
        记住:XML和XSL的encoding必须完全一致!比如XML用GBK,XSL也得用GBK;XML用UTF-8,XSL也得用UTF-8。
        雷区3:模板匹配路径错误
        朋友一开始还犯过一个错:他的XML结构是product > description,但他写的模板是,结果XSL根本没找到要处理的节点,输出为空。后来我帮他调整成(完整路径),才正确匹配到了节点。
        这里的规律是:模板的match路径要和XML的结构完全对应。比如你的XML是book > chapter > content,那模板路径就得是book/chapter/content,不能直接写content。
        为了让你更清楚,我做了个“常见问题表”,把问题、表现、解决方法列得明明白白:

        问题场景
        错误表现
        解决方法
        参考来源

        CDATA含HTML标签
        显示为<h3>等转义字符
        添加disable-output-escaping="yes"
        W3C XSLT 1.0规范

        XML与XSL编码不一致
        输出中文乱码或问号
        统一XML和XSL的encoding属性
        MDN XML编码指南

        模板匹配路径错误
        输出为空或不完整
        检查XML结构,调整模板match路径
        W3Schools XSL模板教程

        其实用XSL处理CDATA转HTML真的没那么难,关键是要搞清楚各个步骤的逻辑,避开我踩过的那些雷。你要是按今天的方法试了,不管成功还是遇到新问题,都欢迎回来留言告诉我——我当初帮朋友解决问题时,也是试了三次才搞定的,多试几次总能找到规律。对了,要是你还有其他XML转HTML的问题,也可以在评论区问我,我看到都会回复的!

        其实XSLT 2.0、3.0和1.0处理CDATA转HTML的核心思路是一样的——都是得让CDATA里的HTML标签别被转义成<h3>这种奇奇怪怪的字符,能直接在网页上显示成正常的标题、列表啥的。但2.0及以上版本多了些更灵活的小功能,比如你可以用data(.)这个函数,它比原来的“.”更精准,能把CDATA里的原始文本完完整整“抠”出来,再加上disable-output-escaping="yes",就能让HTML标签直接生效了。就像你从快递盒里拿东西,data(.)相当于更顺手的镊子,不会带多余的泡沫纸,直接夹出你要的内容。 还有些XSL处理器比如Saxon,支持用xsl:copy-of直接复制CDATA节点,不用再写xsl:value-of,操作起来更省事儿。比如原来你得写一行value-of加disable-output-escaping,现在用copy-of就能一步到位。不过话说回来,新手真没必要急着学这些扩展——1.0的基础方法就够解决大部分问题了,而且大部分工具和系统都还兼容1.0,你按之前说的加disable-output-escaping就行,等用熟了XSL的基本逻辑,再试试2.0以上的功能也不迟,毕竟稳扎稳打比贪多嚼不烂强。

        CDATA里的内容包含&或"这类特殊字符,转HTML时会出错吗?
        不会。CDATA的核心作用就是保护&、"等特殊字符不被XML解析器误判为标签或实体,加上XSL中disable-output-escaping="yes"的设置后,这些字符会原样输出到HTML中。但要注意,如果CDATA里原本就有XML实体引用(比如&),XSL会将其解析为普通的&符号,不会二次转义。 XSLT 2.0或3.0版本,处理CDATA转HTML的方法和1.0一样吗?
        核心逻辑一致,但XSLT 2.0及以上版本有更灵活的扩展。比如,你可以用xsl:value-of select="data(.)"更精准地获取CDATA的原始文本,再结合disable-output-escaping输出;部分处理器(如Saxon)还支持直接用xsl:copy-of复制CDATA节点。不过新手用1.0的基础方法完全能解决问题,兼容性也更好。 如果XML里的CDATA内容有未闭合的HTML标签(比如没写),转成HTML后会有问题吗?
        会。XSL只是“搬运”CDATA的内容,不会检查HTML语法的正确性。如果CDATA里有未闭合的标签(比如产品特点),转成HTML后会导致网页结构混乱(比如后续内容被错误包裹在未闭合的里)。 转之前先检查CDATA中的HTML是否完整,避免这类低级错误。 除了用XSL,还有别的工具能处理XML的CDATA转HTML吗?
        有。比如Python的lxml库可以用XPath提取CDATA内容后直接写入HTML;Java的JAXP API结合XSLT也能实现同样效果;还有一些在线工具(如Convertio)支持一键转换。但XSL是最通用的标准方案,适合批量处理或需要自动化的场景,新手学了也能应对大部分需求。

    • 手把手教你写XSL模板,从0到1转出正确HTML
      • 产品特点
      • 第一步:新建XSL文件,写基础结构
      • 第二步:写“根模板”,定义输出的HTML结构
      • 第三步:写“description模板”,处理CDATA内容
      • 转成<h3>),加了这个属性后,XSL会“保留原始字符”,让CDATA里的HTML标签直接生效。
      • 标题和列表,他当时眼睛都亮了:“原来就差这一句话啊!”
        避坑!我踩过的3个CDATA转HTML的雷区
        虽然步骤看起来简单,但实际操作中很容易踩雷——我帮朋友和客户处理过5次这类问题, 了3个最常见的坑,你一定要避开:
        雷区1:忘记加disable-output-escaping="yes"
        这是新手最常犯的错!我第一次帮朋友处理时,也忘了加这个属性,结果输出的网页上全是<h3>这种字符。后来查了W3C的XSLT 1.0规范(https://www.w3.org/TR/xslt-10/,nofollow)才知道:XSL的默认行为是“转义特殊字符”,目的是防止XML解析错误,但我们需要的是“保留HTML标签”,所以必须手动关闭这个默认行为。
        雷区2:XML和XSL的编码不一致
        去年帮一个外贸客户处理时,遇到过更奇葩的问题——输出的HTML里中文全是问号。我打开他的XML文件一看,第一行是,但他的XSL文件里写的是encoding="UTF-8"。问题就出在这:XML用GBK编码,XSL用UTF-8编码,两者不兼容,导致中文无法正确解析。后来我把XSL的encoding改成GBK,问题立刻解决了。
        记住:XML和XSL的encoding必须完全一致!比如XML用GBK,XSL也得用GBK;XML用UTF-8,XSL也得用UTF-8。
        雷区3:模板匹配路径错误
        朋友一开始还犯过一个错:他的XML结构是product > description,但他写的模板是,结果XSL根本没找到要处理的节点,输出为空。后来我帮他调整成(完整路径),才正确匹配到了节点。
        这里的规律是:模板的match路径要和XML的结构完全对应。比如你的XML是book > chapter > content,那模板路径就得是book/chapter/content,不能直接写content。
        为了让你更清楚,我做了个“常见问题表”,把问题、表现、解决方法列得明明白白:

        问题场景
        错误表现
        解决方法
        参考来源

        CDATA含HTML标签
        显示为<h3>等转义字符
        添加disable-output-escaping="yes"
        W3C XSLT 1.0规范

        XML与XSL编码不一致
        输出中文乱码或问号
        统一XML和XSL的encoding属性
        MDN XML编码指南

        模板匹配路径错误
        输出为空或不完整
        检查XML结构,调整模板match路径
        W3Schools XSL模板教程

        其实用XSL处理CDATA转HTML真的没那么难,关键是要搞清楚各个步骤的逻辑,避开我踩过的那些雷。你要是按今天的方法试了,不管成功还是遇到新问题,都欢迎回来留言告诉我——我当初帮朋友解决问题时,也是试了三次才搞定的,多试几次总能找到规律。对了,要是你还有其他XML转HTML的问题,也可以在评论区问我,我看到都会回复的!

        其实XSLT 2.0、3.0和1.0处理CDATA转HTML的核心思路是一样的——都是得让CDATA里的HTML标签别被转义成<h3>这种奇奇怪怪的字符,能直接在网页上显示成正常的标题、列表啥的。但2.0及以上版本多了些更灵活的小功能,比如你可以用data(.)这个函数,它比原来的“.”更精准,能把CDATA里的原始文本完完整整“抠”出来,再加上disable-output-escaping="yes",就能让HTML标签直接生效了。就像你从快递盒里拿东西,data(.)相当于更顺手的镊子,不会带多余的泡沫纸,直接夹出你要的内容。 还有些XSL处理器比如Saxon,支持用xsl:copy-of直接复制CDATA节点,不用再写xsl:value-of,操作起来更省事儿。比如原来你得写一行value-of加disable-output-escaping,现在用copy-of就能一步到位。不过话说回来,新手真没必要急着学这些扩展——1.0的基础方法就够解决大部分问题了,而且大部分工具和系统都还兼容1.0,你按之前说的加disable-output-escaping就行,等用熟了XSL的基本逻辑,再试试2.0以上的功能也不迟,毕竟稳扎稳打比贪多嚼不烂强。

        CDATA里的内容包含&或"这类特殊字符,转HTML时会出错吗?
        不会。CDATA的核心作用就是保护&、"等特殊字符不被XML解析器误判为标签或实体,加上XSL中disable-output-escaping="yes"的设置后,这些字符会原样输出到HTML中。但要注意,如果CDATA里原本就有XML实体引用(比如&),XSL会将其解析为普通的&符号,不会二次转义。 XSLT 2.0或3.0版本,处理CDATA转HTML的方法和1.0一样吗?
        核心逻辑一致,但XSLT 2.0及以上版本有更灵活的扩展。比如,你可以用xsl:value-of select="data(.)"更精准地获取CDATA的原始文本,再结合disable-output-escaping输出;部分处理器(如Saxon)还支持直接用xsl:copy-of复制CDATA节点。不过新手用1.0的基础方法完全能解决问题,兼容性也更好。 如果XML里的CDATA内容有未闭合的HTML标签(比如没写),转成HTML后会有问题吗?
        会。XSL只是“搬运”CDATA的内容,不会检查HTML语法的正确性。如果CDATA里有未闭合的标签(比如产品特点),转成HTML后会导致网页结构混乱(比如后续内容被错误包裹在未闭合的里)。 转之前先检查CDATA中的HTML是否完整,避免这类低级错误。 除了用XSL,还有别的工具能处理XML的CDATA转HTML吗?
        有。比如Python的lxml库可以用XPath提取CDATA内容后直接写入HTML;Java的JAXP API结合XSLT也能实现同样效果;还有一些在线工具(如Convertio)支持一键转换。但XSL是最通用的标准方案,适合批量处理或需要自动化的场景,新手学了也能应对大部分需求。

    • 避坑!我踩过的3个CDATA转HTML的雷区
      • 雷区1:忘记加disable-output-escaping="yes"
      • 雷区2:XML和XSL的编码不一致
      • 雷区3:模板匹配路径错误
      • CDATA里的内容包含&或"这类特殊字符,转HTML时会出错吗?
      • XSLT 2.0或3.0版本,处理CDATA转HTML的方法和1.0一样吗?
      • 如果XML里的CDATA内容有未闭合的HTML标签(比如没写),转成HTML后会有问题吗?
      • 除了用XSL,还有别的工具能处理XML的CDATA转HTML吗?

    先把CDATA和XSL的关系掰扯清楚,不然操作都是瞎摸

    先别急着写代码,咱得先搞明白“CDATA”和“XSL”到底是啥,不然后面操作时很容易犯糊涂。

    首先说CDATA——它是XML里的“特殊内容保护区”。比如你想在XML里写“

    产品特点

    ”,直接写会被XML解析器当成标签(因为有),这时候就得用把内容包起来,告诉解析器:“这里面的内容是纯文本,别当标签处理!”但问题来了:当你要把XML转成HTML时,CDATA里的HTML标签(比如

      )本来是要显示成网页元素的,可如果不做处理,这些标签会被转义成

      这种字符,网页上就没法正常显示。

      再来说XSL——它全称是“可扩展样式表语言”,相当于XML的“翻译器”。你可以用XSL写一套“翻译规则”,告诉计算机:“把XML里的节点转换成HTML的

      ,把CDATA里的内容直接当成HTML输出”。简单讲,XSL就是帮你把XML里的内容“翻译”成网页能识别的格式的工具。

      我朋友当初为啥踩坑?就是没搞懂这层关系——他以为CDATA会自动转成HTML,结果忽略了“需要用XSL告诉计算机怎么处理CDATA”这一步。后来我跟他解释清楚后,他拍着大腿说:“原来不是CDATA的问题,是我没给翻译器‘说明书’啊!”

      手把手教你写XSL模板,从0到1转出正确HTML

      接下来进入实操环节,我会用朋友的产品说明书XML举例,一步步教你写XSL模板。先看一下他的XML结构(简化版):

      
      
      

      智能保温杯

      <![CDATA[

      产品特点

      • 304不锈钢内胆,保温6-12小时
      • 触摸显温,防烫设计
      • USB-C充电,续航30天

      注:充电时请使用原装数据线。

      ]]>

      他的需求是把这个XML转成HTML,让里的CDATA内容显示成正常的标题、列表和段落。下面开始写XSL模板:

      第一步:新建XSL文件,写基础结构

      首先新建一个后缀为.xsl的文件(比如叫product_transform.xsl),开头要写XML声明和XSL根元素——这是XSL的“骨架”,必须得有:

      
      
      

      <!-

    • 这里写翻译规则 >
    • 注意两点:一是encoding要和XML文件的encoding一致(比如都是UTF-8),不然会乱码;二是xmlns:xsl这个命名空间必须加,不然XSL解析器不认识你的规则。

      第二步:写“根模板”,定义输出的HTML结构

      根模板是XSL的“入口”,用来定义最终输出的HTML整体结构。你可以把它理解成“给网页搭框架”:

      
      

      <!-

    • 这里放CDATA内容的处理规则 >
    • 这里的是关键——它告诉XSL:“去找到product下的description节点,用对应的模板处理它”。

      第三步:写“description模板”,处理CDATA内容

      最核心的一步来了!我们要写一个模板,专门处理description节点里的CDATA内容。直接上代码:

      
      

      <!-

    • 重点:disable-output-escaping="yes" >
    • 这里有两个关键知识点:

    • :“.”代表当前节点(也就是description)的内容,这句话的意思是“取出description里的所有内容”。
    • disable-output-escaping="yes":这是处理CDATA的“ magic属性”!默认情况下,XSL会把这些特殊字符转义成(比如把

      转成

      ),加了这个属性后,XSL会“保留原始字符”,让CDATA里的HTML标签直接生效。

    我朋友当初就是没加这个属性,结果输出的全是转义字符。后来我帮他加上之后,网页上立刻显示出了正常的

    标题和
      列表,他当时眼睛都亮了:“原来就差这一句话啊!”

      避坑!我踩过的3个CDATA转HTML的雷区

      虽然步骤看起来简单,但实际操作中很容易踩雷——我帮朋友和客户处理过5次这类问题, 了3个最常见的坑,你一定要避开:

      雷区1:忘记加disable-output-escaping="yes"

      这是新手最常犯的错!我第一次帮朋友处理时,也忘了加这个属性,结果输出的网页上全是

      这种字符。后来查了W3C的XSLT 1.0规范(https://www.w3.org/TR/xslt-10/,nofollow)才知道:XSL的默认行为是“转义特殊字符”,目的是防止XML解析错误,但我们需要的是“保留HTML标签”,所以必须手动关闭这个默认行为。

      雷区2:XML和XSL的编码不一致

    去年帮一个外贸客户处理时,遇到过更奇葩的问题——输出的HTML里中文全是问号。我打开他的XML文件一看,第一行是,但他的XSL文件里写的是encoding="UTF-8"。问题就出在这:XML用GBK编码,XSL用UTF-8编码,两者不兼容,导致中文无法正确解析。后来我把XSL的encoding改成GBK,问题立刻解决了。

    记住:XML和XSL的encoding必须完全一致!比如XML用GBK,XSL也得用GBK;XML用UTF-8,XSL也得用UTF-8。

    雷区3:模板匹配路径错误

    朋友一开始还犯过一个错:他的XML结构是product > description,但他写的模板是,结果XSL根本没找到要处理的节点,输出为空。后来我帮他调整成(完整路径),才正确匹配到了节点。

    这里的规律是:模板的match路径要和XML的结构完全对应。比如你的XML是book > chapter > content,那模板路径就得是book/chapter/content,不能直接写content

    为了让你更清楚,我做了个“常见问题表”,把问题、表现、解决方法列得明明白白:

    问题场景 错误表现 解决方法 参考来源
    CDATA含HTML标签 显示为

    等转义字符

    添加disable-output-escaping="yes" W3C XSLT 1.0规范
    XML与XSL编码不一致 输出中文乱码或问号 统一XML和XSL的encoding属性 MDN XML编码指南
    模板匹配路径错误 输出为空或不完整 检查XML结构,调整模板match路径 W3Schools XSL模板教程

    其实用XSL处理CDATA转HTML真的没那么难,关键是要搞清楚各个步骤的逻辑,避开我踩过的那些雷。你要是按今天的方法试了,不管成功还是遇到新问题,都欢迎回来留言告诉我——我当初帮朋友解决问题时,也是试了三次才搞定的,多试几次总能找到规律。对了,要是你还有其他XML转HTML的问题,也可以在评论区问我,我看到都会回复的!


    其实XSLT 2.0、3.0和1.0处理CDATA转HTML的核心思路是一样的——都是得让CDATA里的HTML标签别被转义成

    这种奇奇怪怪的字符,能直接在网页上显示成正常的标题、列表啥的。但2.0及以上版本多了些更灵活的小功能,比如你可以用data(.)这个函数,它比原来的“.”更精准,能把CDATA里的原始文本完完整整“抠”出来,再加上disable-output-escaping="yes",就能让HTML标签直接生效了。就像你从快递盒里拿东西,data(.)相当于更顺手的镊子,不会带多余的泡沫纸,直接夹出你要的内容。

    还有些XSL处理器比如Saxon,支持用xsl:copy-of直接复制CDATA节点,不用再写xsl:value-of,操作起来更省事儿。比如原来你得写一行value-of加disable-output-escaping,现在用copy-of就能一步到位。不过话说回来,新手真没必要急着学这些扩展——1.0的基础方法就够解决大部分问题了,而且大部分工具和系统都还兼容1.0,你按之前说的加disable-output-escaping就行,等用熟了XSL的基本逻辑,再试试2.0以上的功能也不迟,毕竟稳扎稳打比贪多嚼不烂强。


    CDATA里的内容包含&或"这类特殊字符,转HTML时会出错吗?

    不会。CDATA的核心作用就是保护&、"等特殊字符不被XML解析器误判为标签或实体,加上XSL中disable-output-escaping="yes"的设置后,这些字符会原样输出到HTML中。但要注意,如果CDATA里原本就有XML实体引用(比如&),XSL会将其解析为普通的&符号,不会二次转义。

    XSLT 2.0或3.0版本,处理CDATA转HTML的方法和1.0一样吗?

    核心逻辑一致,但XSLT 2.0及以上版本有更灵活的扩展。比如,你可以用xsl:value-of select="data(.)"更精准地获取CDATA的原始文本,再结合disable-output-escaping输出;部分处理器(如Saxon)还支持直接用xsl:copy-of复制CDATA节点。不过新手用1.0的基础方法完全能解决问题,兼容性也更好。

    如果XML里的CDATA内容有未闭合的HTML标签(比如没写),转成HTML后会有问题吗?

    会。XSL只是“搬运”CDATA的内容,不会检查HTML语法的正确性。如果CDATA里有未闭合的标签(比如

    产品特点

),转成HTML后会导致网页结构混乱(比如后续内容被错误包裹在未闭合的

里)。 转之前先检查CDATA中的HTML是否完整,避免这类低级错误。

除了用XSL,还有别的工具能处理XML的CDATA转HTML吗?

有。比如Python的lxml库可以用XPath提取CDATA内容后直接写入HTML;Java的JAXP API结合XSLT也能实现同样效果;还有一些在线工具(如Convertio)支持一键转换。但XSL是最通用的标准方案,适合批量处理或需要自动化的场景,新手学了也能应对大部分需求。

温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解! 联系邮箱:lgg.sinyi@qq.com

给TA打赏
共{{data.count}}人
人已打赏
行业资讯

螃蟹账号交易网站哪个好|安全靠谱正规平台推荐及买卖防骗指南

2025-9-10 23:39:21

行业资讯

PHP通过表单与URL传递值超详细示例代码|新手一看就会的实操教程

2025-9-11 0:11:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索