以下XML的XSLT转换怎样实现?

onrush 2009-09-14 04:54:03
<NewDataSet>
<RegionsX>
<ParentID>3303</ParentID>
<RegionID>330326</RegionID>
<RegionName>平阳县</RegionName>
<RegionLevel>3</RegionLevel>
<RegionsZ>
<ParentID>330326</ParentID>
<RegionID>33032601</RegionID>
<RegionName>昆阳镇</RegionName>
<RegionLevel>4</RegionLevel>
<RegionsC>
<ParentID>33032601</ParentID>
<RegionID>33032601001</RegionID>
<RegionName>水塔</RegionName>
<RegionLevel>5</RegionLevel>
</RegionsC>
<RegionsC>
<ParentID>33032601</ParentID>
<RegionID>33032601002</RegionID>
<RegionName>后垟</RegionName>
<RegionLevel>5</RegionLevel>
</RegionsC>
</RegionsZ>
</RegionsX>
</NewDataSet>

想转换为

<RegionsX RegionName="平阳县" RegionID="330326">
<RegionsZ RegionName="昆阳镇" RegionID="33032601">
<RegionsC RegionName="水塔" RegionID="33032601001">
</RegionsC>
<RegionsC RegionName="后垟" RegionID="33032601002">
</RegionsC>
</RegionsZ>
</RegionsX>

XSLT初学。怎么搞?

...全文
79 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaleon 2009-09-17
  • 打赏
  • 举报
回复
<xsl:output method="html"/>
这种方式最终得到的结果是类似于:
<html>
..
<RegionsX RegionName="平阳县" RegionID="330326">
<RegionsZ RegionName="昆阳镇" RegionID="33032601">
..
</html>
之类的东西,由于RegionsX 这些是非法的html标签,所以解析不出来
改输出为xml
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

不过试了下,直接在xml文件中引用xslt文件,在浏览器中是不行。这个就有点搞不懂了,找道理说
转换的目标是xml文件,那就应该按照xml的文件方式显示啊~~

用xmlspy可以。
kaleon 2009-09-16
  • 打赏
  • 举报
回复
对xml文件执行xlst转换就行了啊@#$
如可以在 xml文件中 增加:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="sourceInfo.xslt"?>
....
然后把xml文件放到浏览器中。

或者用xmlspy,对xml文件 按F10,选择xslt文件,确定就可以看到结果。
onrush 2009-09-16
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="sourceInfo.xslt"?>
....
然后把xml文件放到浏览器中。

这种方法实现不了。浏览器中一片空白没有显示
onrush 2009-09-16
  • 打赏
  • 举报
回复
xml文件放到浏览器中显示不出来啊。空白的。
onrush 2009-09-14
  • 打赏
  • 举报
回复
怎样验证其正确性?
hookee 2009-09-14
  • 打赏
  • 举报
回复

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">

<NewDataSet>
<xsl:for-each select="//RegionsX">
<RegionsX>
<xsl:attribute name="RegionName"><xsl:value-of select="normalize-space(RegionName)"/></xsl:attribute>
<xsl:attribute name="RegionID"><xsl:value-of select="normalize-space(RegionID)"/></xsl:attribute>
<xsl:for-each select="RegionsZ">
<RegionsZ>
<xsl:attribute name="RegionName"><xsl:value-of select="normalize-space(RegionName)"/></xsl:attribute>
<xsl:attribute name="RegionID"><xsl:value-of select="normalize-space(RegionID)"/></xsl:attribute>
<xsl:for-each select="RegionsC">
<RegionsC>
<xsl:attribute name="RegionName"><xsl:value-of select="normalize-space(RegionName)"/></xsl:attribute>
<xsl:attribute name="RegionID"><xsl:value-of select="normalize-space(RegionID)"/></xsl:attribute>
</RegionsC>
</xsl:for-each>
</RegionsZ>
</xsl:for-each>
</RegionsX>
</xsl:for-each>
</NewDataSet>


</xsl:template>
</xsl:stylesheet>

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧