Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml org.apache.batik.bridge.BridgeException:null:-1属性“0”;xlink:href";元素的属性<;使用>;是必需的_Xml_Apache_Svg_Element_Batik - Fatal编程技术网

Xml org.apache.batik.bridge.BridgeException:null:-1属性“0”;xlink:href";元素的属性<;使用>;是必需的

Xml org.apache.batik.bridge.BridgeException:null:-1属性“0”;xlink:href";元素的属性<;使用>;是必需的,xml,apache,svg,element,batik,Xml,Apache,Svg,Element,Batik,我们生成SVG文档,它看起来不错,但当我们尝试使用它时: UserAgent userAgent = new UserAgentAdapter(); BridgeContext ctx = new BridgeContext(userAgent); ctx.setDynamicState(BridgeContext.DYNAMIC); GVTBuilder builder = new GVTBuilder(); builder.build(ctx, svgDocument); ER:原因:or

我们生成SVG文档,它看起来不错,但当我们尝试使用它时:

UserAgent userAgent = new UserAgentAdapter();
BridgeContext ctx = new BridgeContext(userAgent);
ctx.setDynamicState(BridgeContext.DYNAMIC);
GVTBuilder builder = new GVTBuilder();
builder.build(ctx, svgDocument);
ER:原因:org.apache.batik.bridge.bridge异常:null:-1

The attribute "xlink:href" of the element <use> is required 
at org.apache.batik.bridge.SVGUseElementBridge.buildCompositeGraphicsNode(SVGUseElementBridge.java:120) [%HOME%/lib/batik-all_new.jar:1.8pre+r1435044] 
at org.apache.batik.bridge.SVGUseElementBridge.createGraphicsNode(SVGUseElementBridge.java:98) [%HOME%/lib/batik-all_new.jar:1.8pre+r1435044] 
at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:213) [%HOME%/lib/batik-all_new.jar:1.8pre+r1435044] 
at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) [%HOME%/lib/batik-all_new.jar:1.8pre+r1435044] 
at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) [%HOME%/lib/batik-all_new.jar:1.8pre+r1435044] 
...
...

没有错。你能帮忙吗

谢谢

注意:use元素确实存在,但运行时出现了一些奇怪的错误

SVGUseElement svg = (SVGUseElement)svgElement.getOwnerDocument()
    .createElementNS("http://www.w3.org/2000/svg", "use");
svg.setAttribute("xlink:href", "#" + deviceObjectParameters.pictureURL.hashCode());
<use xlink:actuate="onLoad" xlink:type="simple" xlink:show="embed" transform="translate(0.0, 0.0) rotate(0, 0, 0) scale(1.0, 1.0)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#1232024040"/>
SVGUseElement svg=(SVGUseElement)svgElement.getOwnerDocument()
.CreateElements(“http://www.w3.org/2000/svg“,”使用“);
setAttribute(“xlink:href”,“#”+deviceObjectParameters.pictureURL.hashCode());

不能使用setAttribute在xlink命名空间中设置属性,它只会在空命名空间中创建属性。您需要的是设置xlink:href属性的属性

svg.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#" + deviceObjectParameters.pictureURL.hashCode());

我做到了。但新错误:null:-1找不到引用的元素:“#1232024040”在元素上指定-可能是“id”的问题,可能使用的哈希代码错误,您需要其他元素的id。我们也遇到了同样的问题,原因是命名空间uri错误。在xsl模板中,我们有名称空间
xmlns:xlink=”http://www.w3.org/TR/xlink“

将其更改为
xmlns:xlink=”http://www.w3.org/1999/xlink“

解决了问题
SVGUseElement svg = (SVGUseElement)svgElement.getOwnerDocument()
    .createElementNS("http://www.w3.org/2000/svg", "use");
svg.setAttribute("xlink:href", "#" + deviceObjectParameters.pictureURL.hashCode());
<use xlink:actuate="onLoad" xlink:type="simple" xlink:show="embed" transform="translate(0.0, 0.0) rotate(0, 0, 0) scale(1.0, 1.0)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#1232024040"/>
svg.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#" + deviceObjectParameters.pictureURL.hashCode());