Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在XML中多次使用父名称?_Xml_Dtd - Fatal编程技术网

如何在XML中多次使用父名称?

如何在XML中多次使用父名称?,xml,dtd,Xml,Dtd,我在玩弄XML,遇到了一个问题。f、 eks我想对同一个子项中的父项名称重复几次,只是它们包含不同的数据。我将如何在DTD中写入这些内容 我唯一看到的是id属性,但我还没有在DTD中看到它的执行 <class> <parent> <sub> aaa </sub> <sub2> bbb </sub2/> </parent> <parent> <sub>

我在玩弄XML,遇到了一个问题。f、 eks我想对同一个子项中的父项名称重复几次,只是它们包含不同的数据。我将如何在DTD中写入这些内容

我唯一看到的是id属性,但我还没有在DTD中看到它的执行

<class>
  <parent>
    <sub> aaa </sub>
    <sub2> bbb </sub2/>
  </parent>  
  <parent>
    <sub> aaa </sub>
    <sub2> bbb </sub2>
  </parent>
</class>    <!-- Added by edit -->

aaa
bbb
aaa
bbb

向元素添加多个子元素的常用方法是在DTD中的元素名称中添加一个尾随的
*
。因此,要创建包含多个子项的DTD,必须使用如下文件(
class.DTD
):

您可以使用
xmllint
检查上述文件的正确性:

xmllint --dtdvalid class.dtd test.xml

如果您希望在XML文件中有多个子元素
sub
sub2
,则还需要在DTD中的元素名称后面添加一个
*

更具体地说,
*
表示零或更多。您还可以使用
+
,这意味着一个或多个(至少一个)。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE class SYSTEM "class.dtd">
<class>
    <parent>
        <sub> aaa </sub>
        <sub2> bbb </sub2>
    </parent>
    <parent>
        <sub> aaa </sub>
        <sub2> bbb </sub2>
    </parent>
</class>
xmllint --dtdvalid class.dtd test.xml