XML解析Golang

2024-07-03

设想: 我有一个正在尝试解析的 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"`
}

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

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

@plato 使用innerxml 将源设置为:

<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"`
}

See a 运行示例 https://play.golang.org/p/7I1bxgxCCO。你应该很高兴从那里开始。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XML解析Golang 的相关文章

随机推荐

  • Rails -- fields_for 不起作用?

    当我运行 Rails 服务器并转到网站上的学校 新页面时 会出现带有标签 学校 的字段 我可以在其中输入学校名称 但 fields for 下的所有其他字段用于输入学校管理员的信息不会出现在我的网站上 当我在表单上使用 检查元素 时 它们就
  • MySQL 存储过程准备语句(动态 SQL)参数化

    我正在尝试编写一个 MySQL 搜索函数 该函数构建动态 sql 值并通过准备好的语句执行它 显然 为了安全起见 我想通过参数传递用户输入 搜索词 但我不知道如何将一个参数与多个参数匹配 查询中的标记 可能最好地表达我的意思 CREATE
  • powershell中排序后的文件大小是原始文件的两倍

    我有一个 powershell 脚本 它读取文件内容 对其进行排序并将输出写入新文件 以下是脚本 获取内容 inputFile 排序 gt sortedFile 文件中的输出已正确排序 但输出文件 sortedFile 比输入文件 inpu
  • 返回每个第 N 个值的迭代器

    我有一个迭代器iter 是否可以将其转换为迭代每个第 N 个元素的迭代器 就像是iter skip each n 1 从 Rust 1 26 开始 有Iterator step by https doc rust lang org std
  • 如何(MySQL)乘以列然后求和行?

    我有这张表 id payment id quantity unit cost 1 633 1 750 2 633 1 750 3 632 2 750 4 632 2 750 我需要的是 payemnt id total 633 1500 6
  • 前缀/后缀增量[重复]

    这个问题在这里已经有答案了 可能的重复 后增量和前增量概念 https stackoverflow com questions 4445706 post increment and pre increment concept 任何人都可以明
  • ARC 和 Malloc:EXC_BAD_ACCESS

    我已经从事一个项目有一段时间了 我决定跳到 ARC 我遇到过一些代码每次都会崩溃 我想知道为什么 我已设法将其简化为以下片段 typedef strong id MYID int main int argc char argv MYID a
  • 如果字符串包含所有单词或条件,则正则表达式匹配

    我正在使用 php 和 regex 制作一个简单的文字游戏 如果一个字符串必须需要两个或更多单词 我们如何搜索它 lets say cat dog play x 2 if 猫狗玩玩 pass 你好 一只正在玩耍的猫狗 not pass 只有
  • linux nasm 程序集打印从 0 到 100 的所有数字

    我正在编写一个程序来打印从 0 到 100 的所有数字 我这样做的唯一原因是测试打印出多位数字 我遇到的问题是我的程序只打印出数字 1 和 2 我不知道为什么 我的编译器编译良好 没有错误 也没有链接器错误 这是我的代码 SECTION d
  • 如何连接 str 和 int 对象?

    如果我尝试执行以下操作 things 5 print You have things things 我在 Python 3 x 中收到以下错误 Traceback most recent call last File
  • 使用 matplotlib 更改特定范围值的线条样式

    我需要重现这种类型的图 分叉图 我尝试按照以下给出的示例进行操作更改 matplotlib line style mid graph https stackoverflow com questions 9284877 change matp
  • 使用 4.0 框架和 Visual Studio 2010 为 ASP Classic 构建 COM 互操作库

    在阅读了许多不同的文章后 没有找到任何特别有说服力的内容可以帮助我逐步完成整个过程 因此我来寻求帮助 场景 我的一个客户只精通以下领域的开发ASP经典版 http en wikipedia org wiki Active Server Pa
  • 仅将任务 ID 存储在数组中

    我正在创建一个程序 该程序将在我的工作场所使用 Asana 自动执行某些功能 但有点卡住了 我能够向工作区提交多个任务并检索每个任务的 ID 但想知道如何仅获取响应的 ID 部分并将其存储到 C 中的数组或列表中 来自 GET 的响应 ta
  • 比较浮点型和双精度型

    include
  • 在 Python 中使用列表理解在嵌套 for 循环中进行枚举

    我想创建一个字典 将三个组的所有组合映射到一个整数 是否可以在单线 and 不使用任何进口 使用 itertools 可以通过以下方式完成 colours red green blue shapes circle square triang
  • 使用 Jquery 创建多步骤模态

    我想用它创建一个多步骤模式 https github com ngzhian multi step modal 我这个 div 带有动态生成的类 modal content append div class div 现在我想将一个输入变量附
  • 如何删除java文件中以特定字符串开头和结尾的特定行?

    我有一个文件 abc txt 其行为 abc txt Ethernet 1 1 Ethernet 1 2 interface 3 abs mod jjj kkkk ll abs mod interface 6 interface 7 我想删
  • 从列表中查找特定项目的数量

    我有一个List
  • Kubernetes - Ingress-nginx 路由错误(无法将前端连接到后端)

    这里需要一些认真的帮助 提前致谢 我正在尝试部署一个基于微服务的 Java 应用程序 我可以在浏览器上访问前端服务 webapp 但无法将其与后端 身份验证服务 连接 因此显示身份验证失败 HTML 登录表单表单指向 login refer
  • XML解析Golang

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