java - 手动解析 Java 中的 XML

标签 java xml xml-parsing

所以我得到了一个格式为 XML 的文件

<Level1 name="Foo1">
  <Level2 name="Foo2">
    <Level3 name="Foo3">
    </Level3>
  </Level2>
</Level1>

我应该阅读以解析在我的 Java 程序中相应格式化的文件。 Java 是否具有任何内置的 XML 功能(例如查看节点处于哪个级别等),或者我是否必须使用常规扫描仪扫描它并像读取普通文本文件一样读取输入?我被特别告知不要使用任何现有的解析器或外部库等。

最佳答案

正如评论总结的那样:你不能两者兼得。如果您的作业要求“手动解析 XML”并且不允许您使用库;那么这就是您必须做的。

从这个意义上讲:您转向像 Scanner 这样的内置类;并使用其标记化功能来解析您的 XML;见here一些指导思想。

从那里开始:您可以通过不同程度的努力来解决这个问题。比如:你需要解析“真正的”XML吗?还是传入的文件具有固定格式?

你看,当你总是得到与你的例子完全一样的 6 行时;那么你就可以阅读 6 行文本;并使用正则表达式、拆分、子字符串……操作来获取“变量”内容。

当然,当您被要求解析任何 有效的 XML 时,您需要一个真正的解析器来发出事件;以及针对不同类型的事件“做某事”的“框架”。其他question包含一个答案(“棘轮怪胎”的第 2 号)概述了如何做到这一点(显然是用另一种语言)。

关于java - 手动解析 Java 中的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43679475/

相关文章:

java - 在 Hibernate 中持久化之前自动设置 bean 值(列)?

java - 有条件地添加额外的 else if 语句

java - Java 中毕达哥拉斯树的可视化表示

JAVA : Parsing the Xml Value using javax. ml 和 Xpath 选项

java - org.xml.sax.SAXParseException : Premature end of file

java - 验证时,我需要 "exception"中的元素名称

xml - 我如何在 linq to xml 中使用 "like"

android - Android 按钮上的边框颜色

java - 如何从 XML 中反序列化 Java 对象?

c# - 解析URL/Web服务