请问怎么杜绝XML录入重复数据,以及能不能用XPath来比对数据

请问怎么杜绝XML录入重复数据,以及能不能用XPath来比对数据

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿满 2019-08-22 14:46:42

同学你好,可以使用schema约束来判断数据是否重复,如果重复则报错,例如:

xml文件:user.xml

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<Users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="user.xsd">
  <name>aa</name>
  <name>bb</name>
  <name>aa</name>
</Users>

xsd约束文件:user.xsd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="Users">
    <xs:complexType>
      <xs:sequence>
          <xs:element name="name" type="xs:string" maxOccurs="unbounded" 
          minOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
    <xs:unique name="nameUnique">
            <xs:selector xpath=".//name" />
            <xs:field xpath="." />
          </xs:unique>          
  </xs:element>
</xs:schema>

当属性name中aa的值重复,则报错,如:

http://img1.sycdn.imooc.com//climg/5d5e3a2a0001546f04160167.jpg

另外xpath对比数据是怎样的对比,建议同学举个例子。

祝:学习愉快~

  • 提问者 炙零 #1
    就比如说我有一个数组的数,分别为1,2,3,4,数组名为a 那能不能在xml里查找所有的数组里跟a的值相同的数组
    2019-08-22 20:04:57
  • 好帮手慕柯南 回复 提问者 炙零 #2
    同学你好!是可以的哦,不过需要循环取出标签的值进行判断,逻辑可能会有一点复杂哦~祝学习愉快~
    2019-08-23 10:55:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码