我似乎在使用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>
答案 0 :(得分:1)
您需要创建DocumentBuilder,以便在尝试按名称空间解析事物之前知道命名空间。即:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder bob = dbf.newDocumentBuilder();