抱歉,如果我问的是新手问题,但名称空间对我来说真的很费解。
我试图从一个XML/XSLT生成多个SVG文档。
我的样式表:
<xsl:stylesheet version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
>
<xsl:output method="xml" indent="yes" name="xml" cdata-section-elements="style"/>
<xsl:template match="/">
<xsl:apply-templates select="//root/menu"/>
</xsl:template>
<xsl:template match="menu">
<xsl:variable name="filename" select="concat(@name,'.svg')"/>
<xsl:result-document href="{$filename}" format="xml">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="basic" id="svg-root" width="482" height="600">
<defs>
<style type="text/css"><![CDATA[rect {
fill: white;
fill-opacity:1;
continues...
这样做会产生以下输出:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.1" baseProfile="basic" id="svg-root" width="482" height="600">
<defs>
<style type="text/css"><![CDATA[rect {
fill: white;
fill-opacity:1;
continues...
但我希望能够根据计算的内容指定高度和宽度属性
我尝试将“
这将失败,因为它(xmlspy)不允许我分配xmlns属性。
如果不在根(svg)上指定名称空间,则xmlns将自动添加到根
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="basic" id="svg-root" width="482" height="600">
<defs xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<style type="text/css"><![CDATA[rect {
fill: white;
fill-opacity:1;
continues...
如何在根svg元素上指定所需的命名空间,同时计算高度和宽度的值,而不需要在第一级子分支上使用多余的命名空间引用?
查找属性值模板,并阅读有关它们的内容。使用它们来计算高度和宽度的值,而不是使用硬编码的值。因此当前的文字结果元素变成如下内容:
<xsl:variable name="width"
select="$raw-width * $compression-factor
+ $fudge"/>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
baseProfile="basic"
id="svg-root"
width="{$width}"
height="{$width * 1.61803}">
如果愿意,还可以使用元素和属性构造函数;您这样做的尝试误入歧途,因为您试图使用xsl:attribute构造函数创建一个命名空间声明,但该属性构造函数只能创建一个通用属性,而不是命名空间属性。你会想要这样的东西:
<xsl:variable name="width"
select="$raw-width * $compression-factor
+ $fudge"/>
<xsl:element name="svg"
namespace="http://www.w3.org/2000/svg">
<xsl:attribute name="version"
select="'1.1'"/>
<xsl:attribute name="baseProfile"
select="'basic'"/>
<xsl:attribute name="id"
select="'svg-root'"/>
<xsl:attribute name="width"
select="$width"/>
<xsl:attribute name="height"
select="$width * 1.61803"/>
我需要一个简单的xslt,它接受输入并提供如下所述的输出。我已经编写了xslt,但名称空间被忽略了。你能帮我一下吗。 输入消息: 预期输出消息: 实际输出消息: XSLT:
问题内容: 想知道是否有人在使用新功能通过PHP 5.3对类进行命名空间时是否遇到了此问题。 我正在使用单独的类来生成动态类调用,以在应用程序中定义用户类型。基本上,类定义器采用类型的整数表示形式并解释它们,返回一个包含要用作该用户模型的类名的字符串。 我在全局范围内定义了具有该名称的用户类型的对象模型,但是在Editor名称空间中,该用户的编辑器具有另一个名称相同的对象。由于某些原因,PHP不允
问题内容: 我想获取标记之间的所有内容,但是由于urn:名称空间,我不知道该怎么做。 有任何想法吗? 问题答案: 简短的答案:使用XPath 。这样:将返回 或者,您可以实现一个映射名称空间名称和URI的,并在查询之前在XPath对象上对其进行设置。 看一下这篇博客文章, 更新: 该文章已结束,您可以在webarchive上看到它 解决方案1样本: 解决方案2样本: 编辑 这是一个完整的示例,它可
我已经阅读了man页面,但我不明白name和namespace是用来做什么的。 对于版本3和版本5的UUID,必须给出额外的命令行参数命名空间和名称。命名空间要么是字符串表示中的UUID,要么是内部预定义命名空间UUID的标识符(目前已知的是“ns: DNS”、“ns: URL”、“ns: OID”和“ns: X500”)。名称是任意长度的字符串。 命名空间: 命名空间可以是字符串表示形式的UUI
问题内容: Sun / Oracle JDK在java.util包中公开了一个用于创建类型3(基于名称)的UUID的函数:java.util.UUID.nameUUIDFromBytes(byte [] name)。 我需要能够使用nameUUIDFromBytes在Java中生成类型3 UUID,并在创建另一种语言的类型3 UUID时达到相同的UUID,假设我提供与源相同的字节。 根据javad
我发送一个POST请求,从一家运输公司生成AWB。为了做到这一点,我必须通过SOAP API POST请求发布多个数据条目。下面的XML是类似的,这是必需的(我已经简化了,否则它要求超过30个参数) 我是SOAP新手,请帮助我朝着正确的方向前进,我甚至非常感谢上面的XML代码,因为它有助于更好地理解。