【问题标题】:Can I parse XML in Java without taking XML file input from outside?我可以在 Java 中解析 XML 而不从外部获取 XML 文件输入吗?
【发布时间】:2018-02-21 17:03:50
【问题描述】:

我们通常使用 DOM、SAX 或 XPath 等解析器从外部 Java 代码中获取输入,如下所示:

File inputFile = new File("C:\\Users\\DELL\\Desktop\\catalog.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);

那么你能在不接受输入的情况下解析 XML 文件吗?我想将我的 XML 代码与 Java 代码一起编写。

【问题讨论】:

  • 您是否在问是否可以在类路径中存储 XML 文件?如果是这样,是的,你可以。如果您使用的是 Maven,请将文件放入 src/main/rresources/your/path/goes/here.xml 并通过 getClass().getResourceAsStream("/your/path/goes/here.xml" 访问它。
  • @SeverityOne 这与 Maven 无关。我认为他在问他是否可以将 XML 字符串嵌入到他的代码中(出于某种未知原因)。 *答案是肯定的 * 并且投票赞成关闭,因为 SO 不是建议教程。
  • @zyexal 我解释他的问题的方式,考虑到英语可能不是他的第一个问题,他有某种配置文件,他想在他的代码中嵌入。 Maven 示例在那里,因为很多人使用 Maven。据我所知,他可能正在使用 sbt。

标签: java xml xml-parsing


【解决方案1】:

使用DocumentBuilder.parse(new InputStream(new StringReader(xml))),其中 xml 是包含要解析的 XML 的字符串。

如果你真的必须使用 DOM。我无法想象为什么有人会再使用它,而 JDOM2 之类的替代品要好得多。

【讨论】:

  • 无论是使用第三方库还是坚持标准,您都应该始终权衡利弊。 JDOM2 的前瞻性如何?五年后还会维持吗?还是十点?
  • 是的,您需要评估技术,有时不选择最佳技术是有原因的。但是大多数人之所以选择 DOM,是因为他们不了解更多:由于历史偶然,DOM 在任何人意识到它有多糟糕之前就进入了 JDK,而且一旦进入,就没有机会改变它。
猜你喜欢
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
  • 1970-01-01
相关资源
最近更新 更多