2012-02-29 94 views
3

我嘗試使用下面的行SVG的字符串解析爲一個的XElement:使用.NET XLINQ解析SVG - 「的XLink」是一個未聲明的前綴

XElement productSvg = XElement.Parse(svgString); 

但我發現了以下異常:XmlException - '的XLink' 是一個未聲明的前綴 這裏是我的SVG:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 

<svg id="svg62433" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 595.19 596.32" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/"> 
     <g id="g7123"> 
      <path id="path5588" d="m404.54,164.29c0,121.64-98.612,220.26-220.26,220.26-121.64,0-220.26-98.612-220.26-220.26,0-121.64,98.612-220.26,220.26-220.26,121.64,0,220.26,98.612,220.26,220.26z" transform="matrix(0.01922722,0.99981514,-0.99981514,0.01922722,536.42634,464.95177)" fill="none"/> 
      <text id="text5590" style="writing-mode:lr-tb;letter-spacing:0px;text-anchor:middle;word-spacing:0px;text-align:center;" font-weight="bold" font-size="64px" line-height="125%" font-stretch="normal" font-variant="normal" font-style="normal" font-family="'Swis721 Cn BT'"> 
       <textPath id="textPath5598" xlink:href="#path5588" startOffset="50%"> 
        <tspan id="contentTopText" style="writing-mode:lr-tb;text-anchor:middle;text-align:center;" font-weight="bold" font-size="64px" line-height="125%" font-stretch="normal" font-variant="normal" font-style="normal" font-family="'Swis721 Cn BT'">Text Here</tspan> 
       </textPath> 
      </text> 
     </g> 
</svg> 

有誰知道如何成功地解析XML屬性在.NET XLINQ包含namespa CES?

+1

那麼無論是LINQ到XML或任何其他XML API,如果你想使用它,你需要的命名空間以及形成XML開頭,這意味着'xlink'前綴需要用eg聲明'xmlns:xlink =「http://www.w3.org/1999/xlink」',就像其他使用的名稱空間前綴一樣。如果你沒有,那麼你需要一個HTML5解析器,而不是到目前爲止(4.0)沒有的.NET。 – 2012-02-29 15:54:13

+1

@MartinHonnen,xlink命名空間在父svg標記中聲明 – KodeKreachor 2012-02-29 16:02:43

+0

您的代碼對我來說工作正常。 – svick 2012-02-29 16:06:29

回答