文本XML标记中有一个tbody,可以在XML文档中的任何位置。如果tbody为空,我想要替换没有可用的数据
Model.DbMeta
所以输出应该是
class DatabaseOptions(object):
def __init__(self, opts):
if opts:
for key in dir(opts):
if not key.startswith('__'):
val = getattr(opts, key, None)
if not callable(val):
setattr(self, key, val)
答案 0 :(得分:0)
在节点text
内使用验证,请参阅下面的XSL:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!--perform validation in required node-->
<xsl:template match="text">
<xsl:choose>
<!--in case when tbody has some text then normally copy it-->
<xsl:when test="string-length(normalize-space(//tbody/text())) >0">
<xsl:copy-of select="."/>
</xsl:when>
<!--in case when tbody has not any text node text will have text - no data available-->
<xsl:otherwise>
<xsl:element name="{name()}">
<xsl:text>
 no data available
</xsl:text>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
如果XML如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<title>Payers</title>
<text>
<table border="1" width="100%">
<thead>
<tr>
<th>Payer Name</th>
<th>Policy Type</th>
<th>Policy Number</th>
<th>Effective Date</th>
<th>Expiration Date</th>
</tr>
</thead>
<tbody/>
</table>
</text>
</root>
结果如下:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<title>Payers</title>
<text>
no data available
</text>
</root>
希望它对您的案件有所帮助。