douzhen5158 2017-01-26 20:32
浏览 138
已采纳

如何从xml的根元素获取第一级注释

my xsd file has following structure:

<?xml version="1.0" encoding="UTF-8"?>
<!-- EIS docs-ws-api Integration Scheme, version 6.4, create date 15.11.2016 -->
<someTag></someTag>

how to get this comment? i try did it on playground https://play.golang.org/p/PVHux_Gvb7

  • 写回答

2条回答 默认 最新

  • dsfhd78978 2017-01-27 03:19
    关注

    As mentioned in other answer, xml.Unmarshal can parse comment only if it's part of XML element.

    External library xmlpath which implements XPath specification can be useful in your case.

    Install: go get gopkg.in/xmlpath.v1

    Let's extract preceding comment of tag named someTag from your example xml.

    import (
        "fmt"
        "log"
    
        "strings"
    
        xmlpath "gopkg.in/xmlpath.v1"
    )
    
    func main() {
        data := `
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- EIS docs-ws-api Integration Scheme, version 6.4, create date 15.11.2016 -->
    <someTag></someTag>
    `
        path := xmlpath.MustCompile("/someTag/preceding::comment()")
        root, err := xmlpath.Parse(strings.NewReader(data))
        if err != nil {
            log.Fatal(err)
        }
        if comment, ok := path.String(root); ok {
            fmt.Println(comment)
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 .net调用本地office组件出现问题
  • ¥15 docker镜像拉取失败请教教我
  • ¥15 https访问nginx上的http
  • ¥15 需要完整规则的五子棋博弈代码
  • ¥15 Hadoop的部署与安装的一些疑问
  • ¥15 短剧的sdk在哪里接入
  • ¥30 智能割草机自动化割草
  • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
  • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零
  • ¥15 不同模型怎么用同一个shader