当前位置: 首页>>代码示例>>C#>>正文


C# IElement.getAttribute方法代码示例

本文整理汇总了C#中IElement.getAttribute方法的典型用法代码示例。如果您正苦于以下问题:C# IElement.getAttribute方法的具体用法?C# IElement.getAttribute怎么用?C# IElement.getAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IElement的用法示例。


在下文中一共展示了IElement.getAttribute方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: process

 private void process(IElement node, bool root)
 {
     IList<RDFa.IncompleteTriple> incompleteTriplesLocal=new List<RDFa.IncompleteTriple>();
     string localLanguage=context.language;
     RDFTerm newSubject=null;
     bool recurse=true;
     bool skipElement=false;
     RDFTerm currentObject=null;
     IDictionary<string,string> namespacesLocal=
     new PeterO.Support.LenientDictionary<string,string>(context.namespaces);
     IDictionary<string,string> iriMapLocal=
     new PeterO.Support.LenientDictionary<string,string>(context.iriMap);
     string attr=null;
     if(!xhtml){
       attr=node.getAttribute("xml:base");
       if(attr!=null){
     context.baseURI=URIUtility.relativeResolve(attr, context.baseURI);
       }
     }
     // Support XML namespaces
     foreach(var attrib in node.getAttributes()){
       string name=StringUtility.toLowerCaseAscii(attrib.getName());
       //Console.WriteLine(attrib);
       if(name.Equals("xmlns")){
     //Console.WriteLine("xmlns %s",attrib.getValue());
     iriMapLocal.Add("", attrib.getValue());
     namespacesLocal.Add("", attrib.getValue());
       } else if(name.StartsWith("xmlns:",StringComparison.Ordinal) && name.Length>6){
     string prefix=name.Substring(6);
     //Console.WriteLine("xmlns %s %s",prefix,attrib.getValue());
     if(!"_".Equals(prefix)){
       iriMapLocal.Add(prefix, attrib.getValue());
     }
     namespacesLocal.Add(prefix, attrib.getValue());
       }
     }
     attr=node.getAttribute("xml:lang");
     if(attr!=null){
       localLanguage=attr;
     }
     // Support RDF/XML metadata
     if(node.getLocalName().Equals("RDF") &&
     RDF_NAMESPACE.Equals(node.getNamespaceURI())){
       miniRdfXml(node,context);
       return;
     }
     string rel=node.getAttribute("rel");
     string rev=node.getAttribute("rev");
     string property=node.getAttribute("property");
     string content=node.getAttribute("content");
     string datatype=node.getAttribute("datatype");
     if(rel==null && rev==null){
       // Step 4
       RDFTerm resource=getSafeCurieOrCurieOrIri(
       node.getAttribute("about"),iriMapLocal);
       if(resource==null){
     resource=getSafeCurieOrCurieOrIri(
     node.getAttribute("resource"),iriMapLocal);
       }
       if(resource==null){
     resource=relativeResolve(node.getAttribute("href"));
       }
       if(resource==null){
     resource=relativeResolve(node.getAttribute("src"));
       }
       if((resource==null || resource.getKind()!=RDFTerm.IRI)){
     string rdfTypeof=getCurie(node.getAttribute("typeof"),iriMapLocal);
     if(isHtmlElement(node, "head") ||
     isHtmlElement(node, "body")){
       resource=getSafeCurieOrCurieOrIri("",iriMapLocal);
     }
     if(resource==null && !xhtml && root){
       resource=getSafeCurieOrCurieOrIri("",iriMapLocal);
     }
     if(resource==null && rdfTypeof!=null){
       resource=generateBlankNode();
     }
     if(resource==null){
       if(context.parentObject!=null) {
     resource=context.parentObject;
       }
       if(node.getAttribute("property")==null){
     skipElement=true;
       }
     }
     newSubject=resource;
       } else {
     newSubject=resource;
       }
     } else {
       // Step 5
       RDFTerm resource=getSafeCurieOrCurieOrIri(
       node.getAttribute("about"),iriMapLocal);
       if(resource==null){
     resource=relativeResolve(node.getAttribute("src"));
       }
       if((resource==null || resource.getKind()!=RDFTerm.IRI)){
     string rdfTypeof=getCurie(node.getAttribute("typeof"),iriMapLocal);
     if(isHtmlElement(node, "head") ||
     isHtmlElement(node, "body")){
//.........这里部分代码省略.........
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:101,代码来源:RDFa1.cs

示例2: miniRdfXml

 // Processes a subset of RDF/XML metadata
 // Doesn't implement RDF/XML completely
 private void miniRdfXml(IElement node, RDFa.EvalContext context, RDFTerm subject)
 {
     string language=context.language;
     foreach(var child in node.getChildNodes()){
       IElement childElement=(child is IElement) ?
       ((IElement)child) : null;
       if(childElement==null) {
     continue;
       }
       if(node.getAttribute("xml:lang")!=null){
     language=node.getAttribute("xml:lang");
       } else {
     language=context.language;
       }
       if(childElement.getLocalName().Equals("Description") &&
       RDF_NAMESPACE.Equals(childElement.getNamespaceURI())){
     RDFTerm about=relativeResolve(childElement.getAttributeNS(RDF_NAMESPACE,"about"));
     //Console.WriteLine("about=%s [%s]",about,childElement.getAttribute("about"));
     if(about==null){
       about=subject;
       if(about==null) {
         continue;
       }
     }
     foreach(var child2 in child.getChildNodes()){
       IElement childElement2=
           ((child2 is IElement) ?
               ((IElement)child2) : null);
       if(childElement2==null) {
         continue;
       }
       miniRdfXmlChild(childElement2,about,language);
     }
       } else if(RDF_NAMESPACE.Equals(childElement.getNamespaceURI()))
     throw new NotSupportedException();
     }
 }
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:39,代码来源:RDFa1.cs

示例3: miniRdfXmlChild

 private void miniRdfXmlChild(IElement node, RDFTerm subject, string language)
 {
     string nsname=node.getNamespaceURI();
     if(node.getAttribute("xml:lang")!=null){
       language=node.getAttribute("xml:lang");
     }
     string localname=node.getLocalName();
     RDFTerm predicate=relativeResolve(nsname+localname);
     if(!hasNonTextChildNodes(node)){
       string content=getTextNodeText(node);
       RDFTerm literal;
       if(!string.IsNullOrEmpty(language)){
     literal=RDFTerm.fromLangString(content, language);
       } else {
     literal=RDFTerm.fromTypedString(content);
       }
       outputGraph.Add(new RDFTriple(subject,predicate,literal));
     } else {
       string parseType=node.getAttributeNS(RDF_NAMESPACE, "parseType");
       if("Literal".Equals(parseType))
     throw new NotSupportedException();
       RDFTerm blank=generateBlankNode();
       context.language=language;
       miniRdfXml(node,context,blank);
       outputGraph.Add(new RDFTriple(subject,predicate,blank));
     }
 }
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:27,代码来源:RDFa1.cs

示例4: implyForLink

 private static bool implyForLink(IElement root, JSONObject subProperties)
 {
     if(StringUtility.toLowerCaseAscii(root.getLocalName()).Equals("a") &&
     root.getAttribute("href")!=null){
       // get the link's URL
       setValueIfAbsent(subProperties,"url", getUValue(root));
       IList<IElement> elements=getChildElements(root);
       if(elements.Count==1 &&
       StringUtility.toLowerCaseAscii(elements[0].getLocalName()).Equals("img")){
     string pValue=getPValue(elements[0]); // try to get the ALT/TITLE from the image
     if(StringUtility.isNullOrSpaces(pValue))
     {
       pValue=getPValue(root); // if empty, get text from link instead
     }
     setValueIfAbsent(subProperties,"name", pValue);
     // get the SRC of the image
     setValueIfAbsent(subProperties,"photo", getUValue(elements[0]));
       } else {
     // get the text content
     string pvalue=getPValue(root);
     if(!StringUtility.isNullOrSpaces(pvalue)) {
       setValueIfAbsent(subProperties,"name", pvalue);
     }
       }
       return true;
     }
     return false;
 }
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:28,代码来源:Microformats.cs

示例5: propertyWalk

   private static void propertyWalk(IElement root,
 JSONObject properties, JSONArray children)
   {
       string[] className=getClassNames(root);
       if(className.Length>0){
         IList<string> types=new List<string>();
         bool hasProperties=false;
         foreach(var cls in className){
       if(cls.StartsWith("p-",StringComparison.Ordinal) && properties!=null){
         hasProperties=true;
       } else if(cls.StartsWith("u-",StringComparison.Ordinal) && properties!=null){
         hasProperties=true;
       } else if(cls.StartsWith("dt-",StringComparison.Ordinal) && properties!=null){
         hasProperties=true;
       } else if(cls.StartsWith("e-",StringComparison.Ordinal) && properties!=null){
         hasProperties=true;
       } else if(cls.StartsWith("h-",StringComparison.Ordinal)){
         types.Add(cls);
       }
         }
         if(types.Count==0 && hasProperties){
       // has properties and isn't a microformat
       // root
       foreach(var cls in className){
         if(cls.StartsWith("p-",StringComparison.Ordinal)){
       string value=getPValue(root);
       if(!StringUtility.isNullOrSpaces(value)) {
         accumulateValue(properties,cls.Substring(2),value);
       }
         } else if(cls.StartsWith("u-",StringComparison.Ordinal)){
       accumulateValue(properties,cls.Substring(2),
           getUValue(root));
         } else if(cls.StartsWith("dt-",StringComparison.Ordinal)){
       accumulateValue(properties,cls.Substring(3),
           getDTValue(root,getLastKnownTime(properties)));
         } else if(cls.StartsWith("e-",StringComparison.Ordinal)){
       accumulateValue(properties,cls.Substring(2),
           getEValue(root));
         }
       }
         } else if(types.Count>0){
       // this is a child microformat
       // with no properties
       JSONObject obj=new JSONObject();
       obj.put("type", new JSONArray(types));
       // for holding child elements with
       // properties
       JSONObject subProperties=new JSONObject();
       // for holding child microformats with no
       // property class
       JSONArray subChildren=new JSONArray();
       foreach(var child in root.getChildNodes()){
         if(child is IElement) {
       propertyWalk((IElement)child,
           subProperties,subChildren);
         }
       }
       if(subChildren.Length>0){
         obj.put("children", subChildren);
       }
       if(types.Count>0){
         // we imply missing properties here
         // Imply p-name and p-url
         if(!implyForLink(root,subProperties)){
       if(hasSingleChildElementNamed(root,"a")){
         implyForLink(getFirstChildElement(root),subProperties);
       } else {
         string pvalue=getPValue(root);
         if(!StringUtility.isNullOrSpaces(pvalue)) {
           setValueIfAbsent(subProperties,"name", pvalue);
         }
       }
         }
         // Also imply u-photo
         if(StringUtility.toLowerCaseAscii(root.getLocalName()).Equals("img") &&
         root.getAttribute("src")!=null){
       setValueIfAbsent(subProperties,"photo", getUValue(root));
         }
         if(!subProperties.has("photo")){
       IList<IElement> images=root.getElementsByTagName("img");
       // If there is only one descendant image, imply
       // u-photo
       if(images.Count==1){
         setValueIfAbsent(subProperties,"photo",
             getUValue(images[0]));
       }
         }
       }
       obj.put("properties", subProperties);
       if(hasProperties){
         foreach(var cls in className){
       if(cls.StartsWith("p-",StringComparison.Ordinal)){ // property
         JSONObject clone=copyJson(obj);
         clone.put("value",getPValue(root));
         accumulateValue(properties,cls.Substring(2),clone);
       } else if(cls.StartsWith("u-",StringComparison.Ordinal)){ // URL
         JSONObject clone=copyJson(obj);
         clone.put("value",getUValue(root));
         accumulateValue(properties,cls.Substring(2),clone);
       } else if(cls.StartsWith("dt-",StringComparison.Ordinal)){ // date/time
//.........这里部分代码省略.........
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:101,代码来源:Microformats.cs

示例6: getValueElementContent

 private static string getValueElementContent(IElement valueElement)
 {
     if(hasClassName(valueElement,"value-title"))
       // If element has the value-title class, use
       // the title instead
       return valueOrEmpty(valueElement.getAttribute("title"));
     else if(elementName(valueElement).Equals("img") ||
     elementName(valueElement).Equals("area")){
       string s=valueElement.getAttribute("alt");
       return (s==null) ? "" : s;
     } else if(elementName(valueElement).Equals("data")){
       string s=valueElement.getAttribute("value");
       return (s==null) ? getTrimmedTextContent(valueElement) : s;
     } else if(elementName(valueElement).Equals("abbr")){
       string s=valueElement.getAttribute("title");
       return (s==null) ? getTrimmedTextContent(valueElement) : s;
     } else
       return getTrimmedTextContent(valueElement);
 }
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:19,代码来源:Microformats.cs

示例7: hasClassName

 private static bool hasClassName(IElement e, string className)
 {
     string attr=e.getAttribute("class");
     if(attr==null || attr.Length<className.Length)return false;
     string[] cls=StringUtility.splitAtSpaces(attr);
     foreach(var c in cls){
       if(c.Equals(className))return true;
     }
     return false;
 }
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:10,代码来源:Microformats.cs

示例8: getRelNames

 private static string[] getRelNames(IElement element)
 {
     string[] ret=StringUtility.splitAtSpaces(
     StringUtility.toLowerCaseAscii(element.getAttribute("rel")));
     if(ret.Length==0)return ret;
     IList<string> retList=new List<string>();
     foreach(var element2 in ret) {
       retList.Add(element2);
     }
     if(retList.Count>=2){
       ISet<string> stringSet=new HashSet<string>(retList);
       return PeterO.Support.Collections.ToArray(stringSet);
     } else
       return retList.ToArray();
 }
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:15,代码来源:Microformats.cs

示例9: getPValue

 private static string getPValue(IElement root)
 {
     if(root.getAttribute("title")!=null)
       return root.getAttribute("title");
     if(StringUtility.toLowerCaseAscii(root.getLocalName()).Equals("img") &&
     !StringUtility.isNullOrSpaces(root.getAttribute("alt")))
       return root.getAttribute("alt");
     return getValueContent(root,false);
 }
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:9,代码来源:Microformats.cs

示例10: getHref

 private static string getHref(IElement node)
 {
     string name=StringUtility.toLowerCaseAscii(node.getLocalName());
     string href="";
     if("a".Equals(name) || "link".Equals(name) || "area".Equals(name)){
       href=node.getAttribute("href");
     } else if("object".Equals(name)){
       href=node.getAttribute("data");
     } else if("img".Equals(name) || "source".Equals(name) ||
     "track".Equals(name) ||
     "iframe".Equals(name) ||
     "audio".Equals(name) ||
     "video".Equals(name) ||
     "embed".Equals(name)){
       href=node.getAttribute("src");
     } else
       return null;
     if(href==null || href.Length==0)
       return "";
     href=HtmlDocument.resolveURL(node,href,null);
     if(href==null || href.Length==0)
       return "";
     return href;
 }
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:24,代码来源:Microformats.cs

示例11: getDTValueContent

 private static string getDTValueContent(IElement valueElement)
 {
     string elname=elementName(valueElement);
     string text="";
     if(hasClassName(valueElement,"value-title"))
       return valueOrEmpty(valueElement.getAttribute("title"));
     else if(elname.Equals("img") || elname.Equals("area")){
       string s=valueElement.getAttribute("alt");
       text=(s==null) ? "" : s;
     } else if(elname.Equals("data")){
       string s=valueElement.getAttribute("value");
       text=(s==null) ? getTrimmedTextContent(valueElement) : s;
     } else if(elname.Equals("abbr")){
       string s=valueElement.getAttribute("title");
       text=(s==null) ? getTrimmedTextContent(valueElement) : s;
     } else if(elname.Equals("del") || elname.Equals("ins") || elname.Equals("time")){
       string s=valueElement.getAttribute("datetime");
       if(StringUtility.isNullOrSpaces(s)) {
     s=valueElement.getAttribute("title");
       }
       text=(s==null) ? getTrimmedTextContent(valueElement) : s;
     } else {
       text=getTrimmedTextContent(valueElement);
     }
     return text;
 }
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:26,代码来源:Microformats.cs

示例12: getClassNames

 private static string[] getClassNames(IElement element)
 {
     string[] ret=StringUtility.splitAtSpaces(element.getAttribute("class"));
     string[] rel=parseLegacyRel(element.getAttribute("rel"));
     if(ret.Length==0 && rel.Length==0)return ret;
     // Replace old microformats class names with
     // their modern versions
     IList<string> retList=new List<string>();
     foreach(var element2 in rel) {
       retList.Add(element2);
     }
     foreach(var element2 in ret) {
       string legacyLabel=legacyLabelsMap[element2];
       if(complexLegacyMap.ContainsKey(element2)){
     foreach(var item in complexLegacyMap[element2]){
       retList.Add(item);
     }
       }
       else if(legacyLabel!=null) {
     retList.Add(legacyLabel);
       } else {
     retList.Add(element2);
       }
     }
     if(retList.Count>=2){
       ISet<string> stringSet=new HashSet<string>(retList);
       return PeterO.Support.Collections.ToArray(stringSet);
     } else
       return retList.ToArray();
 }
开发者ID:peteroupc,项目名称:HtmlParserCSharp,代码行数:30,代码来源:Microformats.cs


注:本文中的IElement.getAttribute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。