我有一个XML文件,其中所有文本必须包含/包含在元素中,即如果元素包含子元素,则它不能包含文本。
示例:
这是允许的:
<?xml version='1.0' encoding='UTF-8'?>
<mainParent source="">
<!-- FOR TESTING ONLY -->
<child1 scheduling=""> <!-- 1ST -->
<child2 domain="" type=""><![CDATA[ALLOWED TEXT]]></child2>
</child1>
<child1 scheduling=""> <!-- 2nd -->
<child2 domain="" type=""><![CDATA[ALLOWED TEXT 2]]></child2>
</child1>
</mainParent>
这是不允许的:
<?xml version='1.0' encoding='UTF-8'?>
<mainParent source="">
<!-- FOR TESTING ONLY -->
<child1 scheduling=""> <!-- 1ST -->
<child2 domain="" type=""><![CDATA[ALLOWED TEXT]]></child2>
NOT ALLOWED TEXT 1
</child1>
<child1 scheduling=""> <!-- 2nd -->
<child2 domain="" type=""><![CDATA[ALLOWED TEXT 2]]></child2>
</child1>
NOT ALLOWED TEXT 2
</mainParent>
使用DOM:
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
dbFactory.setXIncludeAware(true);
dbFactory.setNamespaceAware(true);
DocumentBuilder docBuilder = dbFactory.newDocumentBuilder();
doc = docBuilder.parse( new File(fileName) );
解析器仅在重复属性或元素未关闭时才会失败。但是如果文本条目是“挂起”,那么它也会失败。
我该如何强制执行此操作?
感谢。