当前位置: 首页 > 面试题库 >

XML解析Golang

於彬
2023-03-14
问题内容

场景:我正在尝试解析一个XML结构,但我不知道如何在xml属性值包含文本和更多嵌套值的情况下建立结构。所有其他属性都已正确设置,我不确定是否需要获取源的值并创建一个单独的解析器来检索元素的值。

<trans-unit id="some.message">
    <source>hello %<ph id="first_name">{0}</ph> %<ph id="last_name">{1}</ph>
    </source>
    <target/>
</trans-unit>

type TransUnit struct {
  Id string `xml:"id,attr"`
  Source string `xml:"source"`
  SourceVars MixedVars `xml:"source>ph"`
  Target string `xml:"target"`
}

type MixedVars []MixedVar

type MixedVar struct {
  VarName string `xml:"id,attr"`
}

编辑: 我正在尝试将源解析为以下形式的字符串:你好%{first_name}%{last_name}

用当前结构解组xml字符串将返回一个空结构

使用innerxml的@plato将源设置为:

<source>Are you sure you want to reset the reservation for %<ph id="first_name">{0}</ph> %<ph id="last_name">{1}</ph>

这使我处于类似的情况,在该情况下,我仍然在源值中插入了嵌套的xml标签。


问题答案:

可以一次将源xml节点解组到原始xml和变量切片中,例如:

type TransUnit struct {
    ID     string `xml:"id,attr"`
    Source Source `xml:"source"`
    Target string `xml:"target"`
}

type Source struct {
    Raw  string `xml:",innerxml"`
    Text string `xml:",chardata"`
    Vars []Var  `xml:"ph"`
}

type Var struct {
    ID    string `xml:"id,attr"`
    Value string `xml:",innerxml"`
}

请参见运行示例。您应该从那里出发。



 类似资料:
  • untangle untangle 是一个简洁的用于解析 XML 文档的库。输入一个 XML 文档后,untangle 将文档的结构映射成结点和属性,并返回一个 Python 对象。 形如以下的 XML 文件: <?xml version="1.0"?> <root> <child name="child1"> </root> 可以使用以下的方法进行加载: import untangl

  • 问题内容: 我不是开发人员,只是涉足编程。我从来不了解的一个领域是XML解析。可悲的是,对于我最新的“项目”,我需要为一个Android应用执行此操作。它是我正在工作的原型。 我有这个XML(模型文件): 我有一些代码可以让我获得每个的NodeList: 我不确定下一步该怎么做。我的代码对此似乎很长。我一直在搜寻更好的方法,但发现一些更简洁的代码,无法上班。 有没有很好的Android XML教程

  • 主要内容:解析 XML 文档,解析 XML 字符串,跨域访问,XML DOM所有现代浏览器都有内建的 XML 解析器。 XML 解析器把 XML 文档转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象。 解析 XML 文档 下面的代码片段把 XML 文档解析到 XML DOM 对象中: if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlht

  • 如果我运行一个普通的JAVA项目,上面的函数可以正常工作,但是如果我在android项目中运行它,它会返回false。问题出在哪里?如何在android项目中预览e.printstacktrace,以便查看异常情况?

  • 我得到xml格式的响应,数据在xml节点的cData部分内。现在当我试图提取节点值,然后用cdata文本获取值。 我如何解析它? xml: 我使用代码来获取整个列表,但我只需要获取特定的节点 上面的代码列出了所有的cdata值... 我只需要从上面的xml中获取dbid、isdb、mydb值

  • 我正在尝试用DocumentBuilder将xml结果转换为字符串。我构建了以下函数,以便从数据库中获取所有结果,当我将它们存储在列表中并发送到列表时一切都很好,但当我试图将结果显示为字符串xml时,下一个错误就出现了。