如何使用 linearGradient defs 获取 SVG 元素的 xpath?
How do I get the xpath for SVG element with linearGradient defs?
我正在尝试为以下具有 lineargradient 属性 stop-color="#FFFFFF" 的 SVG 矩形元素查找 xpath。
我当然可以通过引用属性@fill=url(#color1) 来检索 xpath,但我想通过颜色代码#FFFFFF 来检索它。这样做很混乱,因为 URL() 函数在 eXide 中没有解析。非常感谢任何建议。
<body>
<svg>
<defs>
<linearGradient id="color1">
<stop stop-color="#FFFFFF" />
</linearGradient>
<linearGradient id="color2">
<stop stop-color="#000000" />
</linearGradient>
</defs>
<svg x="10%" y="10%" width="10%" height="10%">
<rect width="100%" height="100%" fill="url(#color1)" />
</svg>
</svg>
</body>
此 xpath 应该按预期获取元素
//svg[defs/linearGradient/stop[@stop-color="#FFFFFF"]]/svg/rect
使用 xmllint
在命令行上进行测试
xmllint --xpath '//svg[defs/linearGradient/stop[@stop-color="#FFFFFF"]]/svg/rect' tmp.html
Returns
<rect width="100%" height="100%" fill="url(#color1)"/>
我同意 LMC。
但是你的svg代码不完整。
它不能用作独立的 .svg 文件(始终是一个很好的检查起点,您的 svg 特定标记是否会在预期的显示中产生结果)。
您没有定义开始和结束色标。
试试这个:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<linearGradient id="color1" gradientTransform="rotate(90)">
<stop offset="0%" stop-color="#FFFFFF" />
<stop offset="100%" stop-color="#f00" />
</linearGradient>
</defs>
<svg x="10%" y="10%" width="10%" height="10%">
<rect width="100%" height="100%" fill="url(#color1)" />
</svg>
</svg>
另请参阅:SVG gradient using CSS
我正在尝试为以下具有 lineargradient 属性 stop-color="#FFFFFF" 的 SVG 矩形元素查找 xpath。
我当然可以通过引用属性@fill=url(#color1) 来检索 xpath,但我想通过颜色代码#FFFFFF 来检索它。这样做很混乱,因为 URL() 函数在 eXide 中没有解析。非常感谢任何建议。
<body>
<svg>
<defs>
<linearGradient id="color1">
<stop stop-color="#FFFFFF" />
</linearGradient>
<linearGradient id="color2">
<stop stop-color="#000000" />
</linearGradient>
</defs>
<svg x="10%" y="10%" width="10%" height="10%">
<rect width="100%" height="100%" fill="url(#color1)" />
</svg>
</svg>
</body>
此 xpath 应该按预期获取元素
//svg[defs/linearGradient/stop[@stop-color="#FFFFFF"]]/svg/rect
使用 xmllint
xmllint --xpath '//svg[defs/linearGradient/stop[@stop-color="#FFFFFF"]]/svg/rect' tmp.html
Returns
<rect width="100%" height="100%" fill="url(#color1)"/>
我同意 LMC。
但是你的svg代码不完整。
它不能用作独立的 .svg 文件(始终是一个很好的检查起点,您的 svg 特定标记是否会在预期的显示中产生结果)。
您没有定义开始和结束色标。
试试这个:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<defs>
<linearGradient id="color1" gradientTransform="rotate(90)">
<stop offset="0%" stop-color="#FFFFFF" />
<stop offset="100%" stop-color="#f00" />
</linearGradient>
</defs>
<svg x="10%" y="10%" width="10%" height="10%">
<rect width="100%" height="100%" fill="url(#color1)" />
</svg>
</svg>
另请参阅:SVG gradient using CSS