【问题标题】:parsing XML, report unknown tags/attributes解析 XML,报告未知标签/属性
【发布时间】:2019-05-31 13:34:08
【问题描述】:

我需要解析一个定义明确的 XML 文件。 我定义了结构并使用了

err = xml.Unmarshal(byteValue, &mystruct)

效果很好。但我需要检测未知的标签和属性。

当我看到一个未知标签时,我想将完整标签“按原样”报告给用户。未知属性也一样。

我如何在 Go 中做到这一点?

【问题讨论】:

  • std lib 的encoding/xml 包不支持您所追求的。您需要寻找 3rd 方包或自己实施。使用标准库最多可以使用,any 标签选项收集未知元素/属性,但是,您将不得不污染可能出现未知数的所有结构。例如。 play.golang.com/p/RdB9Ub8fv__Q
  • 看来我需要一些定制的东西。如果我添加一个属性,您的解决方案将不起作用: var data = []byte(` abcdefghijklmno elem2> 对于未知元素,我只需要完整的报告。不需要处理。对于已知元素中的未知属性,我需要报告它们。

标签: xml go xml-parsing


【解决方案1】:

您可以使用xmlquery解析XML文件并提取数据,并且没有定义XML数据结构,它是一个XPath查询包。

f, err := os.Open("../books.xml")
doc, err := xmlquery.Parse(f)
list:=xmlquery.Find(doc, "//book//author")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 2013-08-26
    • 2022-08-24
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多