我有一个XML文件,我想使用XSLT进行转换.它仅在我从XML文件的以下部分中删除所有属性时才起作用:
<DiscoveryClientData
xmlns="http://www.frontrange.com/centennial/discovery"
SchemaVersion="0.6"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.frontrange.com/centennial/discovery DiscoveryClientData-0.6.xsd"
/>
Run Code Online (Sandbox Code Playgroud)
XSLT就像这样开始:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="DiscoveryClientData">
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么这可能会失败?失败的是它没有在转换后的数据周围放置任何元素标签,它只是将它全部吐出一个连续的字符串.
谢谢!
编辑:好的,下面给出的示例有效,但有没有办法在XSLT文件中只定义一次前缀?所以我不必重写我的整个XSLT文件?谢谢.
您的XML不在默认命名空间中,因此您的XSLT找不到要处理的任何节点.
检查这里的如何命名空间分配给XSL模板.
按流行需求添加此项.取自:这里
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:b="urn:xmlns:25hoursaday-com:bookstore">
<xsl:template match="b:bookstore">
<book-titles>
<xsl:apply-templates select="b:book/b:title"/>
</book-titles>
</xsl:template>
<xsl:template match="b:title">
<xsl:copy-of select="." />
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2148 次 |
最近记录: |