我有一些项目,比如说
this2
我将在多个地方使用。所以,我将拥有一个带有项<group id = "5">
<items>
<!-- this2 here-->
<items/>
<group/>
的XML节点
在其上面
<group id = "87">
<items>
<!-- this5 and this44 here-->
<items/>
<group/>
和另一个:
this2
如何在同一XML文件中需要定义要引用的项目?一旦完成,如何引用它们?
TIA。
ps。:我只对提出准确的XML结构感兴趣,以便我可以使用DOM解析器读取它。我不打算定义XSD架构。
// ===============================
我希望在一个地方定义项目<item>
并参考它应该进入的每个小组对它的描述。
这是为this2
和<group>
键入Shapes
标记的更好选择
将其复制粘贴到它应该进入的每个HLists
标记中。
这是如何在同一个XML文件中以最简单的方式完成的? 一些结构严谨的方式是不值得的 - 我的数据并不是那么长或复杂。 但是 - 必须有一种比复制粘贴更好的方法。
答案 0 :(得分:0)
您应该能够在内部子集中声明实体并使用DOM解析器读取它。
示例:
<!DOCTYPE doc [
<!ENTITY this '<item name="this" price="that"/>'>
<!ENTITY this2 '<item name="this2" price="that2"/>'>
<!ENTITY this3 '<item name="this3" price="that3"/>'>
]>
<doc>
<group id="5">
<items>
&this2;
</items>
</group>
<group id="87">
<items>
&this;
&this3;
</items>
</group>
</doc>
您可以将实体声明移到单独的文件中并使用参数实体引用它们,但这可能不适用于所有DOM解析器。
示例:
<!DOCTYPE doc [
<!ENTITY % ents SYSTEM "ents.mod">
%ents;
]>
<doc>
<group id="5">
<items>
&this2;
</items>
</group>
<group id="87">
<items>
&this;
&this3;
</items>
</group>
</doc>