java getattribute intvalue_Java NodeTree.getAttributeI方法代码示例

import gnu.xml.NodeTree; //导入方法依赖的package包/类

public static boolean deepEqual (NodeTree seq1, int ipos1,

NodeTree seq2, int ipos2,

NamedCollator collator)

{

int kind1 = seq1.getNextKind(ipos1);

int kind2 = seq2.getNextKind(ipos2);

switch (kind1)

{

case Sequence.ELEMENT_VALUE:

if (kind1 != kind2)

return false;

// Assumes local-name and namespace-URI are interned.

String loc1 = seq1.posLocalName(ipos1);

String loc2 = seq2.posLocalName(ipos2);

if (loc1 != loc2)

return false;

String ns1 = seq1.posNamespaceURI(ipos1);

String ns2 = seq2.posNamespaceURI(ipos2);

if (ns1 != ns2)

return false;

int attr1 = seq1.firstAttributePos(ipos1);

int nattr1 = 0;

for (;;)

{

if (attr1 == 0

|| seq1.getNextKind(attr1) != Sequence.ATTRIBUTE_VALUE)

break;

nattr1++;

String local = seq1.posLocalName(attr1);

String ns = seq1.posNamespaceURI(attr1);

int attr2 = seq2.getAttributeI(ipos2, ns, local);

if (attr2 == 0)

return false;

String aval1 = KNode.getNodeValue(seq1, attr1);

String aval2 = KNode.getNodeValue(seq2, attr2);

if (! deepEqualItems(aval1, aval2, collator))

return false;

attr1 = seq1.nextPos(attr1);

}

int nattr2 = seq2.getAttributeCount(ipos2);

if (nattr1 != nattr2)

return false;

/* ... fall through ... */

case Sequence.DOCUMENT_VALUE:

return deepEqualChildren(seq1, ipos1, seq2, ipos2, collator);

case Sequence.ATTRIBUTE_VALUE:

if (seq1.posLocalName(ipos1) != seq2.posLocalName(ipos2)

|| seq1.posNamespaceURI(ipos1) != seq2.posNamespaceURI(ipos2))

return false;

return deepEqualItems(KAttr.getObjectValue(seq1, ipos1),

KAttr.getObjectValue(seq2, ipos2),

collator);

case Sequence.PROCESSING_INSTRUCTION_VALUE:

if (! seq1.posTarget(ipos1).equals(seq2.posTarget(ipos2)))

return false;

return KNode.getNodeValue(seq1, ipos1)

.equals(KNode.getNodeValue(seq2, ipos2));

case Sequence.COMMENT_VALUE:

case Sequence.CDATA_VALUE:

default:

if (kind1 != kind2)

return false;

return KNode.getNodeValue(seq1, ipos1)

.equals(KNode.getNodeValue(seq2, ipos2));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值