用asp解析svg xml
发布时间:2020-12-16 06:24:28 所属栏目:asp.Net 来源:网络整理
导读:我需要在经典的asp上从svg文件中获取一个属性.但我的代码不起作用.任何的想法? 来自font标签的id属性. font id="LetterGothicStdRegular" horiz-adv-x="1228" asp功能 function getFontId(url)Set objXml = Server.CreateObject("MSXML2.DomDocument.6.0")'
我需要在经典的asp上从svg文件中获取一个属性.但我的代码不起作用.任何的想法?
来自font标签的id属性. <font id="LetterGothicStdRegular" horiz-adv-x="1228" > asp功能 function getFontId(url) Set objXml = Server.CreateObject("MSXML2.DomDocument.6.0") 'objXml.async = False objXml.LoadXML(url) For Each oNode In objXml.SelectNodes("svg/defs/font") sKey = oNode.GetAttribute("id") ' sValue = oNode.Text getXML=sKey Next Set objXml= Nothing end function svg代码: <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg"> <metadata>This is a custom SVG webfont generated by Font Squirrel. Copyright : 1987 1990 1991 1995 1998 2001 2002 Adobe Systems Incorporated All rights reserved Foundry : Adobe </metadata> <defs> <font id="LetterGothicStdRegular" horiz-adv-x="1228"> <font-face units-per-em="2048" ascent="1520" descent="-528"/> <missing-glyph horiz-adv-x="500"/> <glyph unicode="2" horiz-adv-x="1783" d="M149 1099l66 51l672 -696l671 696l66 -51l-737 -776z"/> <glyph unicode="8" horiz-adv-x="1783" d="M167 430l737 776l738 -776l-66 -51l-672 696l-671 -696z"/> <glyph unicode="<" d="M201 737l776 738l51 -66l-696 -672l696 -671l-51 -66z"/> <glyph unicode=">" d="M288 66l696 671l-696 672l51 66l776 -738l-776 -737z"/> <glyph unicode=" " horiz-adv-x="737"/> <glyph unicode=" " horiz-adv-x="1475"/> <glyph unicode=" " horiz-adv-x="737"/> <glyph unicode=" " horiz-adv-x="1475"/> <glyph unicode=" " horiz-adv-x="491"/> <glyph unicode=" " horiz-adv-x="368"/> <glyph unicode=" " horiz-adv-x="245"/> <glyph unicode=" " horiz-adv-x="245"/> <glyph unicode=" " horiz-adv-x="184"/> <glyph unicode=" " horiz-adv-x="295"/> <glyph unicode=" " horiz-adv-x="81"/> <glyph unicode=" " horiz-adv-x="295"/> <glyph unicode=" " horiz-adv-x="368"/> <glyph unicode="" horiz-adv-x="500" d="M0 0v0v0v0v0z"/> </font> </defs> </svg> 解决方法
您可以解析指定svg选择命名空间.
另外,参数名称是url,如果它是url,这是有意义的吗?因为loadXML仅从包含xml的字符串加载.如果url是远程的,则应该使用Load将ServerHTTPRequest属性设置为True. 查看 validateOnParse和 resolveExternals.这是一个例子: Function getFontId(url) With Server.CreateObject("MSXML2.DomDocument.6.0") .async = False .validateOnParse = False 'parse only for well-formed xml,no more .resolveExternals = False .setProperty "ServerHTTPRequest",True .setProperty "ProhibitDTD",False ' it's true by default in 6.0 If .Load(url) Then .setProperty "SelectionNamespaces","xmlns:svg='http://www.w3.org/2000/svg'" Dim domAttrId Set domAttrId = .selectSingleNode("//svg:defs/svg:font/@id") If domAttrId Is Nothing Then 'node nor attribute not exists Else getFontId = domAttrId.Value End If Else With .parseError Err.Raise .errorCode,.srcText,.reason End With End If End With End Function (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – RequiredFieldValidator必须单击两次
- ASP.Net将文件下载到客户端浏览器
- IHttpAsyncHandler和ASP.NET“请求执行”计数器的问题
- asp.net-mvc-3 – CopyAllFilesToSingleFolderForPackageDe
- asp.net-mvc – 使用Checkboxes绑定到具有强类型MVC视图的B
- asp.net-3.5 – 动态添加HttpModules和HttpHandlers
- asp.net-mvc-4 – 高级WebGrid教程或解决方案
- rest – ASP.NET Web API身份验证选项
- 在ASP.NET中接收POST数据
- asp.net-mvc – ASP.NET MVC和IIS 5
推荐文章
站长推荐
- asp.net-mvc-3 – Autofac等同于Ninject的WhenIn
- asp.net-mvc – 如何从对象HtmlAttributes中获取
- 标签 – 如何使用像asp这样的Razor:Literal?
- asp.net – Session_Start没有解雇
- asp.net mvc datatable
- asp.net-core – visual studio 2015没有看到我的
- asp.net-mvc – 嵌套属性的模型绑定在asp.net mv
- asp.net-mvc – MVC 4. IIS 7.5 PUT返回405
- ASP.NET core Web中使用appsettings.json配置文件
- asp.net核心 – 如何在自己的主机环境中的ASP.NE
热点阅读