【发布时间】:2018-05-02 10:47:19
【问题描述】:
想要实现:
获取未知 XML 文件的元素(元素名称,xml 文件中有多少元素)。
然后获取所有属性及其名称和值以供以后使用(例如与其他xml文件比较)
有人对此有任何想法吗?
我不想像之前的代码 sn-p 那样预先定义超过 500 个表,我应该能够以某种方式动态获取元素的数量和元素名称。
编辑!
Example1
<Root Attri1="" Attri2="">
<element1 EAttri1="" EAttri2=""/>
<Element2 EAttri1="" EAttri2="">
<nestedelement3 NEAttri1="" NEAttri2=""/>
</Element2>
</Root>
Example2
<Root Attri1="" Attri2="" Attr="" At="">
<element1 EAttri1="" EAttri2="">
<nestedElement2 EAttri1="" EAttri2="">
<nestedelement3 NEAttri1="" NEAttri2=""/>
</nestedElement2>
</element1>
</Root>
程序片段:
String Example1[] = {"element1","Element2","nestedelement3"};
String Example2[] = {"element1","nestedElement2","nestedelement3"};
for(int i=0;i<Example1.length;++){
NodeList Elements = oldDOC.getElementsByTagName(Example1[i]);
for(int j=0;j<Elements.getLength();j++) {
Node nodeinfo=Elements.item(j);
for(int l=0;l<nodeinfo.getAttributes().getLength();l++) {
.....
}
}
输出: 预期结果是从 XML 文件中获取所有元素和所有属性,而无需预先定义任何内容。
例如:
Elements: element1 Element2 nestedelement3
Attributes: Attri1 Attri2 EAttri1 EAttri2 EAttri1 EAttri2 NEAttri1 NEAttri2
【问题讨论】:
-
你可以使用 JAX-B,我想……我不是 100% 确定。
-
你不需要密码sn-p,你需要一本书。我推荐 Elliot Rusty Harold 的关于 Java 中的 XML 处理的书。恐怕我将把它作为题外话来结束,因为这是一个“技术选择”问题,而且是题外话。但是,如果您搜索“Java 中的 XML 解析”,您会发现很多想法。
-
这怎么可能是题外话?目前我正在使用 domparser 来解决这个问题,我最好的想法是在我预先定义元素之后进行多个 for 循环......我正在寻找的是一种通用且更简单的方法......如果那是题外话,那么我对此感到非常惊讶你的意见
-
要将其变成一个合法的编程问题,您需要提供有关您的输入、您想要的输出、您到目前为止编写的代码以及您现有尝试未能解决问题的方式的具体信息问题。
-
你去吧,希望它有助于理解我想要什么