我的XML看起来像这样:
<a>
<b>
<c>
<d>TEXT</d>
</c>
</b>
</a>
我知道如何通过xml.Unmarshal函数分隔此代码,但是有什么方法可以仅在一定深度下执行Unmarshal动作吗?例如,如果我想获取一个表示“
TEXT”的字符串并将其传递给另一个函数?我尝试给一个子字符集对象,但是它仍然尝试解析其余的XML …
我认为这就是您要问的(也请考虑您的评论)。
package main
import (
"encoding/xml"
"fmt"
)
func main() {
type Result struct {
Value string `xml:"b>c>d"`
}
v := Result{"none"}
data := `
<a>
<b>
<c>
<d>TEXT</d>
</c>
</b>
</a>
`
err := xml.Unmarshal([]byte(data), &v)
if err != nil {
fmt.Printf("error: %v", err)
return
}
fmt.Printf("Value: %v\n", v.Value)
}
输出:
Value: TEXT
更新 :lanZG发表评论后
func main() {
type InnerResult struct {
Value string `xml:",innerxml"`
}
type Result struct {
B InnerResult `xml:"b"`
}
v := Result{InnerResult{"none"}}
data := `
<a>
<b>
<c>
<d>TEXT</d>
</c>
</b>
</a>
`
err := xml.Unmarshal([]byte(data), &v)
if err != nil {
fmt.Printf("error: %v", err)
return
}
fmt.Printf("Value: %v\n", v.B.Value)
}
输出:
Value:
<c>
<d>TEXT</d>
</c>
我需要从文件夹(文件)中的每个文件提取字符串部分,其扩展名如下:png,jpg,jpeg,png,jpg,jpeg。文件命名约定如下(这是两个不同的文件,但它们唯一的共同点是获取文件名所需的时间戳: airlineCode_partnerCode_invoiceNO_timestamp.fileType fileName.fileType_timestamp 文件名示例: ET_PRH_4_201
我有一个字符串和一个ArrayList。字符串中有几个单词,用空格隔开,例如“firstword second third”。我想将字符串拆分为几个部分,并将“piece”字符串添加到ArrayList中。
我有一个xml,我想提取其中的一部分。但我无法得到它。如果我使用变量并将每个键放入变量中,我可以得到那个部分,但这是一个非常漫长的过程。那幺,是否有任何简短的流程? 下面是 XML : 我想要< code>network link集合中的xml。
我想获取作为提交一部分的所有文件的列表。我有可用的提交ID。 我查看了以下链接 如何使用JGit获取提交的文件列表 并尝试了下面的代码。 和以下代码 使用上面的代码,我得到了分支中存在的所有文件的列表。我需要在提交中删除,修改或添加的文件列表。 使用以下git命令,我成功获得了属于特定提交的文件列表 我想从JGit那里得到同样的东西。 更新:我不想得到两个提交之间的区别,而只是作为提交的一部分更改
我试图根据特定的模式在C#中提取字符串的一部分。 示例: 模式1= 模式2= 谢谢
问题内容: 提取像这样的字符串的整数部分的最佳方法是什么 您如何获得123部分。您可以使用Java的Scanner对其进行破解,还有更好的方法吗? 问题答案: 为什么不只使用正则表达式来匹配所需的字符串部分? 这就是您所需要的,再加上所有需要的字符。 查看http://www.regular-expressions.info/tutorial.html,了解正则表达式的工作原理。 编辑:我想说的是