【问题标题】:dtd #PCDATA for child nodes in xmldtd #PCDATA 用于 xml 中的子节点
【发布时间】:2011-10-12 16:48:40
【问题描述】:

我有几个重复的子节点。如何创建内部 DTD 命名空间以使 f1 和 f2 使用#PCDATA?

<xsl:for-each select="a/b/c/d/e[1]/f">
        <tr>
          <td><xsl:value-of select="f1"></td>       
          <td><xsl:value-of select="f2">/td> 
          <td>
</xsl:for-each>
<xsl:for-each select="a/b/c/d/e[2]/f">
        <tr>
          <td><xsl:value-of select="f1"></td>       
          <td><xsl:value-of select="f2">/td> 
          <td>
</xsl:for-each>

XML:

<a>
<b>
<c>
<d>
<e section="1">
<f>
<f1></f1><f2></f2>
</f>
</e>
<e section="2">
<f>
<f1></f1><f2></f2>
</f>
</e>
</d>
</c>
</b>
</a>

如何创建内部 DTD 命名空间以使 f1 和 f2 使用#PCDATA?

【问题讨论】:

    标签: html xml xslt loops dtd


    【解决方案1】:

    适当的 DTD:

    <!DOCTYPE a [
    
        <!ELEMENT a (b)>
        <!ELEMENT b (c)>
        <!ELEMENT c (d)>
        <!ELEMENT d (e*)>
        <!ELEMENT e (f)>
        <!ELEMENT f (f1, f2)>
        <!ELEMENT f1 (#PCDATA)>
        <!ELEMENT f2 (#PCDATA)>
    
        <!ATTLIST e section CDATA #REQUIRED>
    
    ]>
    

    【讨论】:

    • 太棒了。但是如果我只想要 f1 和 f2 的 pcdata,我是否必须从一个 thru e 中指定每个元素?
    猜你喜欢
    • 2013-12-26
    • 2010-10-29
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    相关资源
    最近更新 更多