javascript - 有没有办法用javascript解析svg文件
问题描述
我能够读取整个 svg 块,但我只想要 x1 属性(稍后将其输入到数组中)。最好的方法是什么?我在 svg 文件中包含了我想要查看的一行。
我曾尝试使用 filereader 类,但我不确定如何获取 x1。
<line style = "stroke:rgb(0,20,255)" stroke-width = "1" x1 = "25.53951" y1 = "12.65721" x2 = "27.65919" y2 = "16.0494" />"
const input = document.querySelector('input[type = "file"]')
input.addEventListener('change',function (e){
console.log(input.files)
const reader = new FileReader()
reader.onload = function(){
console.log(reader.result)
}
reader.readAsText(input.files[0])
}, false)
解决方案
在这种情况下,最简单的做法是将 XML 解析为 Document 并使用常用的 DOM 方法来获取所需的内容。
尝试这样的事情:
const parser = new DOMParser();
const svgDoc = parser.parseFromString(data, 'image/svg+sml');
然后您可以执行以下操作:
svgDoc.querySelector('line').getAttribute('x1');
推荐阅读
- python - 有没有什么好方法可以在不使用索引的情况下迭代一系列嵌套列表?
- python - 使用 pycrypto 实现 XML 加密以解析 LCP 编码的文件
- python - 按自定义键对字符串列表进行排序
- python-3.x - 返回 A 和 B 可能对应的所有可能值 - Python
- xml - 从 XML 请求和响应中获取数据
- node.js - 将 express app.get 拆分为多个文件
- c++ - 如何修复c ++不输出输入
- python - ValueError 使用流程将字符串映射到 col - pandas
- twilio - 无法验证来自授权、连接子账户的调用的 Twilio webhook 签名
- macos - Why can't I access the files under the app internal path (xxxx.app/Contents/MacOS/) after packaging on Qt mac?