java xml 写了一段代码 属性里的默认值出不来
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java xml 写了一段代码 属性里的默认值出不来相关的知识,希望对你有一定的参考价值。
dtd文件
<?xml version="1.0" encoding="GBK"?>
<!ELEMENT 书籍列表 (计算机书籍)* >
<!ELEMENT 计算机书籍 ((书名, 价格)+, 作者+, 性别?, (电话|地址), 简介, hr) >
<!ELEMENT 书名 (#PCDATA) >
<!ELEMENT 价格 (#PCDATA) >
<!ELEMENT 作者 (#PCDATA) >
<!ELEMENT 电话 (#PCDATA) >
<!ELEMENT 地址 (#PCDATA) >
<!ELEMENT 性别 (#PCDATA) >
<!ELEMENT 简介 (#PCDATA) >
<!ELEMENT hr EMPTY>
<!ATTLIST 作者
性别 (男 | 女) "男"
年龄 CDATA #IMPLIED
联系电话 CDATA #REQUIRED
职务 CDATA #FIXED "作家"
个人爱好 CDATA "聊天"
>
xml文件
<?xml version="1.0" encoding="gbk" ?>
<!DOCTYPE 书籍列表 SYSTEM "book.dtd">
<书籍列表>
<计算机书籍>
<书名>db2调优</书名>
<价格>53.00</价格>
<书名>db2大全</书名>
<价格>58.00</价格>
<作者 联系电话="12343" 个人爱好="数据库">牛新庄</作者>
<电话>1122</电话>
<简介><![CDATA[一本<XML>好书]]></简介>
<hr/>
</计算机书籍>
<计算机书籍>
<书名>xml前世今生</书名>
<价格>55.00</价格>
<作者 联系电话="34343434" >汤雨祥</作者>
<作者 联系电话="343434344">鲁迅</作者>
<电话>1122434</电话>
<简介><![CDATA[一本<XML>好书]]></简介>
<hr></hr>
</计算机书籍>
<计算机书籍>
<书名>thinking in java</书名>
<价格>45.00</价格>
<作者 联系电话="3434344">陶为</作者>
<性别>男</性别>
<地址>南京</地址>
<简介>java编程思想</简介>
<hr></hr>
</计算机书籍>
</书籍列表>
浏览器运行结果
dtd里写的所有的属性的默认值 都不显示 怎么回事
2张图片
”男“ 和”简介“ 后面的不是| 是鼠标
这是XML方面的问题,其实和java没什么关系吧。
首先说,浏览器里只是显示XML的代码,XML怎么写就怎么显示,不会自动添上DTD里面规定的默认值。
其次,DTD里面的默认值是为了XML书写简便,在XML文件中缺省时,解析器也可以找到其默认值。解析器指的是XMLDOM,而不是浏览器。
给你个例子吧,还是你的DTD和XML,我在C#里面用MSXMLDOM解析,获取第一本计算机书籍的作者属性中的性别和职务,虽然XML中没有写明,但是我依然得到了默认值:
上面是C#代码,下面是运行时得到的变量值。我不写java,只能给你看C#程序。
参考技术A 上次我也有这个问题,搞了半天也没有解决,最后我删了从新写了一下就好了,我也不知道为什么。。抱歉![Shell编程]写了一段shell代码,运行发现代码块(标红的)执行的预期结果出不来,谁能帮我看看?
【原代码】
Mem_Usage=91.00
CPU_Usage=85.00
if [[ `expr $Mem_Usage > 90.00` -eq 1 ]];then
echo "Memory highly used! "
elif [[ `expr $CPU_Usage > 80.00` -eq 1 ]];then
echo "CPU highly used! "
elif [[ `expr $Mem_Usage > 90.00` -eq 1 ]] && [[ `expr $CPU_Usage > 80.00` -eq 1 ]];then
echo "Memory && CPU highly used!"
else
echo "Memory && CPU used normal!"
fi
调试运行结果:错误
# sh -x test.sh
+ Mem_Usage=91.00
+ CPU_Usage=95.00
++ expr 91.00 ‘>‘ 90.00
+ [[ 1 -eq 1 ]]
+ echo ‘Memory highly used! ‘
Memory highly used!
------------------------------------------------------------------我是可爱的分割线-------------------------------------------------------------
【修改后的代码】
Mem_Usage=91.00
CPU_Usage=85.00
if [ `expr $Mem_Usage > 90.00` -eq 1 ] && [[ `expr $CPU_Usage > 80.00` -eq 1 ];then
echo "Memory && CPU highly used!"
elif [ `expr $CPU_Usage > 80.00` -eq 1 ];then
echo "CPU highly used! "
elif [ `expr $Mem_Usage > 90.00` -eq 1 ];then
echo "Memory highly used! "
else
echo "Memory && CPU used normal!"
fi
调试结果输出:正确
# sh -x test.sh
+ Mem_Usage=91.00
+ CPU_Usage=95.00
++ expr 91.00 ‘>‘ 90.00
+ [[ 1 -eq 1 ]]
++ expr 95.00 ‘>‘ 80.00
+ [[ 1 -eq 1 ]]
+ echo ‘Memory && CPU highly used!‘
Memory && CPU highly used!
以上是关于java xml 写了一段代码 属性里的默认值出不来的主要内容,如果未能解决你的问题,请参考以下文章
[Shell编程]写了一段shell代码,运行发现代码块(标红的)执行的预期结果出不来,谁能帮我看看?