gpt4 book ai didi

java - 通过命名空间 URI 查找 XML 标签

转载 作者:行者123 更新时间:2023-12-01 15:30:11 28 4
gpt4 key购买 nike

我在 Java 中对 XML 文档进行一些基本解析时似乎遇到了问题。我正在尝试检索基于特定命名空间的标签列表。不幸的是,返回的标签列表是空的。谁能告诉我我做错了什么?谢谢。

Java 示例

DocumentBuilder bob = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document template = bob.parse( new InputSource( new FileReader( xmlFile ) ) );
NodeList tags = template.getElementsByTagNameNS( "http://www.example.com/schema/v1_0_0", "*" );

xhtml 示例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ex="http://www.example.com/schema/v1_0_0">
<head><title>Test</title></head>
<body>
<h1>Test</h1>
<p>Hello, World!</p>
<p><ex:test>Text</ex:test></p>
</body>
</html>

最佳答案

您需要创建 DocumentBuilder,使其在尝试按命名空间解析事物之前了解命名空间。即:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder bob = dbf.newDocumentBuilder();

关于java - 通过命名空间 URI 查找 XML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9628434/

28 4 0