XML文档是否有任何标准,事实上或其他标准?例如哪个是编写标签的"最佳"方式?
<MyTag />
<myTag />
<mytag />
<my-tag />
<my_tag />
Run Code Online (Sandbox Code Playgroud)
同样,如果我有一个更好的属性的枚举值
<myTag attribute="value one"/>
<myTag attribute="ValueOne"/>
<myTag attribute="value-one"/>
Run Code Online (Sandbox Code Playgroud) 我正在使用正则表达式进行一些HTML剥离(是的,我知道,永远不会用正则表达式解析 HTML,但我只是剥离它,而且我也很遗憾不能使用任何外部库).我正在使用正则表达式食谱中的正则表达式,它运行得很好,除了我遇到这个问题:
在字符串中Bob Saget <bobs@aol.com>,我的正则表达式将电子邮件作为标记进行匹配.
所以我的问题是,@标志是有效的XML或HTML 标记字符吗?(我不是在询问它是否在属性中有效;我知道它是)如果不是,我将能够在我的正则表达式中成功排除它.
我不知道在哪里查看.我看了一下,我认为在XML中,标签中不允许使用at符号; 但是,我要感谢一些具体的证据.
我正在使用的一些SVG/XML文件在属性名称中包含破折号和冒号 - 例如:
<g>
<a xlink:href="http://example.com" data-bind="121">...</a>
</g>
Run Code Online (Sandbox Code Playgroud)
我试图找出如何使用解组这些属性golang的encoding/xml包.虽然虚线属性有效,但带冒号的属性不起作用:
package main
import (
"encoding/xml"
"fmt"
)
var data = `
<g>
<a xlink:href="http://example.com" data-bind="121">lala</a>
</g>
`
type Anchor struct {
DataBind int `xml:"data-bind,attr"` // this works
XlinkHref string `xml:"xlink:href,attr"` // this fails
}
type Group struct {
A Anchor `xml:"a"`
}
func main() {
group := Group{}
_ = xml.Unmarshal([]byte(data), &group)
fmt.Printf("%#v\n", group.A)
}
Run Code Online (Sandbox Code Playgroud)
这些看似合法的属性名称; 任何想法如何提取xlink:href一个?谢谢.