java - XML 元素类型都是相同的

标签 java xml

我有一个包含两种元素类型的 XML 文档。一种元素类型仅具有属性,另一种元素类型仅包含第一个属性。

<TagList name="Results">
    <Tag name="type_of_identifier" value="idvalue"/>
    <Tag name="some_other_identifier" value="otheridvalue"/>
    ....
    <Tag name="type" value="asdfaf"/>
    <TagList name="SubList">
        <Tag name="param1" value="value1"/>
        <Tag name="param2" value="value2"/>
    </TagList>
</TagList>

我是 XML(也是 Java)的新手,我只是不明白为什么要这样设置。

有没有一种方法可以通过指定名称来获取节点的值,而不必循环遍历每个节点?

最佳答案

在处理文件之前,请考虑将文件转换为更卫生的文件。具有两个模板规则的简单 XSLT 样式表:

<xsl:template match="TagList">
  <xsl:element name="{@name}">
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

<xsl:template match="Tag">
  <xsl:element name="{@name}">
    <xsl:value-of select="@value"/>
  </xsl:element>
</xsl:template>

将其转换为如下内容:

<Results>
    <type_of_identifier>idvalue</type_of_identfier>
    <some_other_identifier>otheridvalue<some_other_identifier/>
    ....
    <type>asdfaf</type>
    <SubList>
        <param1>value1</param1>
        <param2>value2</param2>
    </SubList>
</Results>

这样做的好处是文档的所有后续处理变得更加容易。

关于java - XML 元素类型都是相同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22028197/

相关文章:

java - keystore 不适用于 Java 9

python - 你如何使用 python 从 <abc>some Text</abc> 获取 "some Text"?

javascript - 打印 JSON 对象数据时控制台上出现未定义消息

xml - XPath - 根据属性值选择不同级别的多个节点

java - 签名字段中的"Lock"字典是签名后签名损坏的原因

java - 如何使用 Spring Boot 2.3.1 将http流量重定向到https

android - 如何修复 android studio 中的“加密 xml 问题”或“不知道这是什么”

html - 某个兄弟之前的所有子元素的 XPath?

java - 元素在 Arraylist 的迭代过程中丢失

java - 我的多线程分析