Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetAttribute() [3/4]

override string System.Xml.XPath.XPathNavigatorReader.GetAttribute ( string name)
inline

Definition at line 394 of file XPathNavigatorReader.cs.

395 {
396 XPathNavigator xPathNavigator = _nav;
397 switch (xPathNavigator.NodeType)
398 {
399 case XPathNodeType.Attribute:
401 if (!xPathNavigator.MoveToParent())
402 {
403 return null;
404 }
405 break;
406 default:
407 return null;
408 case XPathNodeType.Element:
409 break;
410 }
411 ValidateNames.SplitQName(name, out var prefix, out var lname);
412 if (prefix.Length == 0)
413 {
414 if (lname == "xmlns")
415 {
416 return xPathNavigator.GetNamespace(string.Empty);
417 }
418 if (xPathNavigator == _nav)
419 {
421 }
422 if (xPathNavigator.MoveToAttribute(lname, string.Empty))
423 {
424 return xPathNavigator.Value;
425 }
426 }
427 else
428 {
429 if (prefix == "xmlns")
430 {
431 return xPathNavigator.GetNamespace(lname);
432 }
433 if (xPathNavigator == _nav)
434 {
436 }
437 if (xPathNavigator.MoveToFirstAttribute())
438 {
439 do
440 {
441 if (xPathNavigator.LocalName == lname && xPathNavigator.Prefix == prefix)
442 {
443 return xPathNavigator.Value;
444 }
445 }
446 while (xPathNavigator.MoveToNextAttribute());
447 }
448 }
449 return null;
450 }

References System.Xml.XPath.XPathNavigatorReader._nav, System.prefix, and System.Xml.ValidateNames.SplitQName().