Java XML解析 - 检测不在元素

时间:2016-06-18 13:22:33

标签: java xml dom xml-parsing xinclude

我有一个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) );

解析器仅在重复属性或元素未关闭时才会失败。但是如果文本条目是“挂起”,那么它也会失败。

我该如何强制执行此操作?

感谢。

0 个答案:

没有答案