GVKun编程网logo

从XML文档获取指定的Node值(如何从xml中获取所有的数据)

16

本文将为您提供关于从XML文档获取指定的Node值的详细介绍,我们还将为您解释如何从xml中获取所有的数据的相关知识,同时,我们还将为您提供关于c#–从XML文件中读取特定的XML元素、c#–如何从X

本文将为您提供关于从XML文档获取指定的Node值的详细介绍,我们还将为您解释如何从xml中获取所有的数据的相关知识,同时,我们还将为您提供关于c# – 从XML文件中读取特定的XML元素、c# – 如何从XmlReader创建XML文件?、docker swarm如何在指定的node上运行指定的容器、GDataXMLNode解析xml文件的实用信息。

本文目录一览:

从XML文档获取指定的Node值(如何从xml中获取所有的数据)

从XML文档获取指定的Node值(如何从xml中获取所有的数据)

我在遍历XML文档(使用C#)并获取所有必要的值时遇到问题。我成功地浏览了XML文档中所有指定的XmlNodeList,成功地获取了所有XmlNode值,但是我必须获取此XmlNodeList之外的一些值。

例如:

<?xml version="1.0" encoding="UTF-8" ?><Element xsi:schemaLocation="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd xsd2009027_kor21.xsd" Kod="370" xmlns="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">/2001/XMLSchema-instance">    <ANode>        <BNode>            <CNode>                <Example>                    <Name>John</Name>                    <NO>001</NO>                </Example>            </CNode>        </BNode>        <ID>1234</ID>        <Date>2011-10-01</Date>    </ANode>    <ANode>        <BNode>            <CNode>                <Example>                    <Name>Mike</Name>                    <NO>002</NO>                </Example>            </CNode>        </BNode>        <ID>5678</ID>        <Date>2011-03-31</Date>    </ANode></Element>

这是获取XML文档中每个找到的ANode中节点Name和NO的值的代码:

XmlDocument xml = new XmlDocument();xml.LoadXml(myXmlString); //myXmlString is the xml file in string //copying xml to string: string myXmlString = xmldoc.OuterXml.ToString();XmlNodeList xnList = xml.SelectNodes("/Element[@*]/ANode/BNode/CNode");foreach (XmlNode xn in xnList){  XmlNode example = xn.SelectSingleNode("Example");    if (example != null)    {        string na = example["Name"].InnerText;        string no = example["NO"].InnerText;    }}

现在,我在获取ID和日期的值时遇到问题。

答案1

小编典典

就像您要从中获取某些东西一样,CNode您也需要为ANode

XmlNodeList xnList = xml.SelectNodes("/Element[@*]");foreach (XmlNode xn in xnList){  XmlNode anode = xn.SelectSingleNode("ANode");    if (anode!= null)    {        string id = anode["ID"].InnerText;        string date = anode["Date"].InnerText;        XmlNodeList CNodes = xn.SelectNodes("ANode/BNode/CNode");        foreach (XmlNode node in CNodes)        {         XmlNode example = node.SelectSingleNode("Example");         if (example != null)         {            string na = example["Name"].InnerText;            string no = example["NO"].InnerText;         }        }    }}

c# – 从XML文件中读取特定的XML元素

c# – 从XML文件中读取特定的XML元素

我有以下 XML文件
<lexicon>
<word>
  <base>a</base>
  <category>determiner</category>
  <id>E0006419</id>
</word>
<word>
  <base>abandon</base>
  <category>verb</category>
  <id>E0006429</id>
  <ditransitive/>
  <transitive/>
</word>
<word>
  <base>abbey</base>
  <category>noun</category>
  <id>E0203496</id>
</word>
<word>
  <base>ability</base>
  <category>noun</category>
  <id>E0006490</id>
</word>
<word>
  <base>able</base>
  <category>adjective</category>
  <id>E0006510</id>
  <predicative/>
  <qualitative/>
</word>
<word>
  <base>abnormal</base>
  <category>adjective</category>
  <id>E0006517</id>
  <predicative/>
  <qualitative/>
</word>
<word>
  <base>abolish</base>
  <category>verb</category>
  <id>E0006524</id>
  <transitive/>
</word>
</lexicon>

我需要用C#应用程序读取这个文件,如果只有类别是动词,我想打印它的整个元素单词.
我怎样才能做到这一点?

解决方法

你可以使用linq到xml.
var xmlStr = File.ReadAllText("fileName.xml");


    var str = XElement.Parse(xmlStr);

    var result = str.Elements("word").
Where(x => x.Element("category").Value.Equals("verb")).ToList();

    Console.WriteLine(result);

c# – 如何从XmlReader创建XML文件?

c# – 如何从XmlReader创建XML文件?

如何从System.Xml.XmlReader编写 XML文件?

我以为这将是一个简单的问题,但每当我搜索我似乎是结束阅读文件读者或逐节点编写.

XmlReader对象传达存储在数据库中的xml,只需要从数据库中出来一个文件.有没有办法做到这一点?

sqlCommand dataCmd = new sqlCommand(sqlText,Conn);
        System.Xml.XmlReader dataReader = null;

        dataCmd.CommandTimeout = 60000;

        Conn.open();
        dataReader = dataCmd.ExecuteXmlReader();
        dataReader.Read();

解决方法

您需要创建一个XmlWriter并调用其 WriteNode method.

例如:

using (conn)
using (sqlCommand dataCmd = new sqlCommand(sqlText,Conn)) {
    dataCmd.CommandTimeout = 60000;

    Conn.open();
    using (XmlReader dataReader = dataCmd.ExecuteXmlReader())
    using (XmlWriter writer = XmlWriter.Create(File.OpenWrite(...)) {
        writer.WriteNode(dataReader,true);
    }
}

docker swarm如何在指定的node上运行指定的容器

docker swarm如何在指定的node上运行指定的容器

描述问题

比如我们有worker1,worker2,worker3三个docker host另外加一个manager1(它是swarm的master)来管理它们。

如果在manager1上直接docker service create某一个容器的话,比如nginx容器,那么master会来决定挑哪一个node作为nginx容器的运行的host。

如果我要nginx容器只跑在worker1上面的话,应该怎么办呢?

解决方案

简单来说就是给每一个node打标签。

docker node update --label-add func=nginx worker1

上面这句话的意思是master给worker1的docker打上了功能是nginx的标签。func和nginx是你可以自己定的键值对。

然后在运行docker service create 的时候,指定–constraint参数即可

docker service create --name my_nginx --constraint ''node.labels.func == nginx'' nginx

这样nginx的容器就会在worker1上启动,而不会在其他node上启动了。

补充

我的好奇心让我使了一个坏。我把worker1打上func=nginx的标签后,在docker service create的constraint参数上故意写成node.labels.func == nginx111。

这个时候用docker service ls和docker service ps nginx都可以看到service已经注册了,但是它的CURRENT STATE显示Pending , 并且也没有任何分配到node。

我不停止这个service,然后直接把worker2的标签写为nginx111,奇迹般地,在worker2上就自己启动了nginx的容器。master还是很智能的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:
  • 使用Docker Swarm 搭建Wordpress的方法
  • Docker Swarm实现服务的滚动更新的示例代码
  • Docker Swarm从部署到基本操作
  • 详解Docker Swarm服务发现和负载均衡原理
  • docker swarm 集群故障与异常详解
  • Docker使用Swarm组建集群的方法
  • Docker Swarm入门实例详解
  • 详解使用docker 1.12 搭建多主机docker swarm集群
  • 详解Docker Swarm概念与用法

GDataXMLNode解析xml文件

GDataXMLNode解析xml文件

转载请标明出处

欢迎交流

zltqzj@163.com

我是一个单线程妞~





Nsstring* path = [[NSBundle mainBundle] pathForResource:@"StudentXML" ofType:@"xml"];
    NSData* data = [[NSData alloc] initWithContentsOfFile:path];
    GdataxMLDocument* doc = [[GdataxMLDocument alloc] initWithData:data options:0 error:nil];
    GdataxMLElement* root = [doc rootElement];//所有内容
    
    // 取标签中的内容方法:1,路径。2,childAtIndex
    //(1)路径
    NSArray* fistName = [root nodesForXPath:@"//student/name/fistName" error:nil];// 所t有标签为fistName的元素。
    NSLog(@"1:%@",[[fistName objectAtIndex:1] stringValue]);
    // (2)childAtIndex
    GdataxMLNode* lastName = [[[root childAtIndex:1] childAtIndex:0] childAtIndex:1];
    NSLog(@"2:%@",[lastName stringValue]);

代码下载地址:http://download.csdn.net/detail/sijiazhentan/6270435


解析稍微复杂的页面:http://api.hudong.com/iphonexml.do?type=focus-c

代码如下:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize recieveData = _recieveData;

- (id)initWithNibName:(Nsstring *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURL* url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
    
    NSURLRequest* request = [NSURLRequest requestWithURL:url];
    [NSURLConnection connectionWithRequest:request delegate:self];
    
    
    // Do any additional setup after loading the view from its nib.
}


- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    _recieveData = [[NSMutableData alloc] init];
    
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [self.recieveData  appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    Nsstring* str = [[Nsstring alloc] initWithData:self.recieveData encoding:NSUTF8StringEncoding];
    
    _recieveData = nil;
    

    GdataxMLDocument* doc = [[GdataxMLDocument alloc] initWithXMLString:str options:0 error:nil];
    GdataxMLElement* root = [doc rootElement];
    
 
    NSArray* array =[root nodesForXPath:@"//response/docList/docInfo" error:nil];
    for (int i =0; i<array.count; i++) {
         NSLog(@"每项内容的题目:%@",[[[[array objectAtIndex:i] elementsForName:@"docTitle"] objectAtIndex:0] stringValue] );
    }
    
    
   
    
    
    _recieveData = nil;
    
    
}


- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // dispose of any resources that can be recreated.
}

@end

今天关于从XML文档获取指定的Node值如何从xml中获取所有的数据的分享就到这里,希望大家有所收获,若想了解更多关于c# – 从XML文件中读取特定的XML元素、c# – 如何从XmlReader创建XML文件?、docker swarm如何在指定的node上运行指定的容器、GDataXMLNode解析xml文件等相关知识,可以在本站进行查询。

本文标签: