Java如何将XML数据与文件扩展名进行比较



我是新来的,只是想试试是否能在这里得到一些帮助。我想为我的问题寻求一些帮助。

我得到了一个XML文件,我想将那里的字符串与exmaple的文件扩展名进行比较。Example.txt->将XML中的所有字符串与我的文件扩展名进行比较。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href"tx ?>
<zip>
<exclusions>
<switch> .bak </switch>
<switch> .tmp </switch>
<switch> .frm </switch>
<switch> .opt </switch>
<switch> .met </switch>
<switch> .i </switch>
</exclusions>
</zip>

这是我打印它的XML代码,我的想法是将所有字符串存储到数组中,并将它们与我的扩展进行比较。。但我不知道怎么做。

希望你能给我一些想法。

感谢

public class xmlFileExten {
public static void main(String[] args) {
try {
File file = new File(xmlFile);
DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document doc = dBuilder.parse(file);
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
if (doc.hasChildNodes()) {
printNote(doc.getChildNodes());
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
private static void printNote(NodeList nodeList) {
for (int count = 0; count < nodeList.getLength(); count++) {
Node tempNode = nodeList.item(count);
if (tempNode.getNodeType() == Node.ELEMENT_NODE) {
System.out.println("Node Value =" + tempNode.getTextContent());

您可以使用以下代码。主要变化:

1( 使用List作为结果而不是Array,

2( 使用textNode AND getNodeValue((而不是getTextContent(getNodeValue只返回该节点的文本(,

3( 使用递归函数

public class xmlFileExten
{
public static void main(final String[] args)
{
final List<String> extensionList = getExtensionList("1.xml");
System.out.print(extensionList); // return [.bak, .tmp, .frm, .opt, .met, .i]
}
private static List<String> getExtensionList(final String fileName)
{
final List<String> results = new ArrayList<>();
try
{
final File file = new File(fileName);
final DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
final Document doc = dBuilder.parse(file);
if (doc.hasChildNodes())
{
results.addAll(getExtensionList(doc.getChildNodes()));
}
}
catch (final Exception e)
{
System.out.println(e.getMessage());
}
return results;
}
private static List<String> getExtensionList(final NodeList nodeList)
{
final List<String> results = new ArrayList<>();
for (int count = 0; count < nodeList.getLength(); count++)
{
final Node   tempNode = nodeList.item(count);
final String value    = tempNode.getNodeValue();
if (tempNode.getNodeType() == Node.TEXT_NODE && value != null && !value.trim().isEmpty())
{
results.add(value.trim());
}
results.addAll(getExtensionList(tempNode.getChildNodes()));
}
return results;
}
}

我认为这里的主要问题是您无法正确解析它。以有效的方式将此XML解析为JAVA POJO你可以使用http://pojo.sodhanalibrary.com/以获得任务所需的正确POJO类。获得POJO后,您可以比较扩展

相关内容

  • 没有找到相关文章

最新更新