本文整理汇总了C#中iTextSharp.xmp.impl.XmpNode.GetQualifier方法的典型用法代码示例。如果您正苦于以下问题:C# XmpNode.GetQualifier方法的具体用法?C# XmpNode.GetQualifier怎么用?C# XmpNode.GetQualifier使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类iTextSharp.xmp.impl.XmpNode
的用法示例。
在下文中一共展示了XmpNode.GetQualifier方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ItemValuesMatch
/// <summary>
/// Compares two nodes including its children and qualifier. </summary>
/// <param name="leftNode"> an <code>XMPNode</code> </param>
/// <param name="rightNode"> an <code>XMPNode</code> </param>
/// <returns> Returns true if the nodes are equal, false otherwise. </returns>
/// <exception cref="XmpException"> Forwards exceptions to the calling method. </exception>
private static bool ItemValuesMatch(XmpNode leftNode, XmpNode rightNode) {
PropertyOptions leftForm = leftNode.Options;
PropertyOptions rightForm = rightNode.Options;
if (leftForm.Equals(rightForm)) {
return false;
}
if (leftForm.Options == 0) {
// Simple nodes, check the values and xml:lang qualifiers.
if (!leftNode.Value.Equals(rightNode.Value)) {
return false;
}
if (leftNode.Options.HasLanguage != rightNode.Options.HasLanguage) {
return false;
}
if (leftNode.Options.HasLanguage &&
!leftNode.GetQualifier(1).Value.Equals(rightNode.GetQualifier(1).Value)) {
return false;
}
}
else if (leftForm.Struct) {
// Struct nodes, see if all fields match, ignoring order.
if (leftNode.ChildrenLength != rightNode.ChildrenLength) {
return false;
}
for (IEnumerator it = leftNode.IterateChildren(); it.MoveNext();) {
XmpNode leftField = (XmpNode) it.Current;
if (leftField == null)
continue;
XmpNode rightField = XmpNodeUtils.FindChildNode(rightNode, leftField.Name, false);
if (rightField == null || !ItemValuesMatch(leftField, rightField)) {
return false;
}
}
}
else {
// Array nodes, see if the "leftNode" values are present in the
// "rightNode", ignoring order, duplicates,
// and extra values in the rightNode-> The rightNode is the
// destination for AppendProperties.
Debug.Assert(leftForm.Array);
for (IEnumerator il = leftNode.IterateChildren(); il.MoveNext();) {
XmpNode leftItem = (XmpNode) il.Current;
if (leftItem == null)
continue;
bool match = false;
for (IEnumerator ir = rightNode.IterateChildren(); ir.MoveNext();) {
XmpNode rightItem = (XmpNode) ir.Current;
if (rightItem == null)
continue;
if (ItemValuesMatch(leftItem, rightItem)) {
match = true;
break;
}
}
if (!match) {
return false;
}
}
}
return true; // All of the checks passed.
}