我在MVC web项目中有一个xml文件,如下所示:
<Navigation>
<item>
<CoreId>1010</CoreId>
<p>
<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
<g>
<title>Layer 1</title>
<rect height="170" width="258" y="136.67" x="188" stroke-width="5" stroke="#000000" fill="#ff0000" id="svg_1"/>
</g>
</svg>
</p>
<Privilege>ADMIN</Privilege>
<MenuID>10811010</MenuID>
<ParentMenuID>1081</ParentMenuID>
<ResourceKey>AP_Template</ResourceKey>
</item>
我尝试使用menuId == 10811010获取项目中的svg数据;
这是我的C#代码:
public string GetVPFCore(int vpfCore)
{
VPFCore _localitem = new VPFCore();
try
{
var element = from item in xmlController.Root.Descendants("item")
where (string)item.Element("MenuID") == vpfCore.ToString()
select new
{
_data = item.Element("p").ToString()
};
foreach (var t in element)
{
_localitem.Data = t._data;
}
return _localitem.Data;
}
catch (Exception)
{
throw new IOException("The XML item was not found!");
}
}
为什么我无法将svg数据嵌入到<p>
标记中来获取svg数据。
此函数的作用域是仅提取不带<p>
的svg数据,并将其注入cshtml视图。
答案 0 :(得分:0)
如果要访问svg
元素,则需要考虑名称空间,因此定义
XNamespace svg = "http://www.w3.org/2000/svg";
然后item.Element("p").Element(svg + "svg")
为您提供嵌入式SVG文档的根元素。