精华内容
下载资源
问答
  • //以上xml内容如何获取时间等信息,我试了simplexml_load_string函数,解析失败。--------------------------------------------------------------------------------还有就是上面是print_r输出的内容,而var_dump...

    //以上xml内容如何获取时间等信息,我试了simplexml_load_string函数,解析失败。

    --------------------------------------------------------------------------------

    还有就是上面是print_r输出的内容,而var_dump输出的是这样的

    D:\WWW\demo\demo\order.php:24:string '<?xml version="1.0" encoding="utf-8"?>

    <Order DeliveryNo="PH00127495JP">

    <Status>

    <State StateDate="2016-06-28 11:37:47" StateMessage="亲,您的包裹已入库完成,祝您海淘愉快!" StateOperator="PH002JP" />

    <State StateDate="2016-06-29 12:32:13" StateMessage="亲,您的包裹已安排极速转运!" StateOperator="PH002JP" />

    <State Stat'... (length=877)

    //simplexml_load_string函数直接报错,说Warning: simplexml_load_string(): Entity: line 1: parser error : Start tag expected, '<' not found in D:\WWW\demo\demo\order.php on line 36

    跪求大神赐教!!

    ---------------------------------------------------------------------------

    这些是php处理的代码。麻烦大神了。

    $delivery = trim($_POST['delivery']);

    $t = $_POST['t'];

    $encrypt = $_POST['encrypt'];

    $Source = trim($delivery.$encrypt.$t);

    $Source = strtoupper(md5($Source));

    //$Source = trim($_POST['Source']);

    //$Source = strtoupper(md5($Source));

    $data['delivery'] = $delivery;

    $data['t'] = $t;

    $data['encrypt'] = $encrypt;

    $data['Source'] = $Source;

    $url = 'http://www.ipehua.com/IWendaAPI/IGetDeliveryAPI.ashx';

    //$xml_content = send_post($url,$data);

    $curl = curl_init();

    curl_setopt_array($curl, Array(

    CURLOPT_URL => $url,

    CURLOPT_RETURNTRANSFER => TRUE,

    CURLOPT_ENCODING => 'UTF-8',

    CURLOPT_POSTFIELDS => $data

    ));

    $xml_content = curl_exec($curl);

    curl_close($curl);

    展开全文
  • 请问,如果Myeclipse接收了一个XML文件,里面是关于绘制地图的点,线,位置坐标等的信息, 那该如何解析这个XML?最终目的是想把描述地图的XML文件能显示出一幅地图来? 有没有关于显示地图方面的代码参考,或者能...
  • 已关闭 。 这问题需要更加集中 。 它当前不接受答案。
    已关闭 。 这个问题需要更加 集中 。 它当前不接受答案。

    想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。

    去年关闭。

    这篇文章是 社区维基 。 编辑现有答案以改善此职位。 它当前不接受新的答案。

    有没有一种简单的方法来解析C#中的XML文件? 如果是这样,该怎么办?


    #1楼

    您可以使用ExtendedXmlSerializer进行序列化和反序列化。

    安装您可以从nuget安装ExtendedXmlSerializer或运行以下命令:

    Install-Package ExtendedXmlSerializer
    

    序列化:

    ExtendedXmlSerializer serializer = new ExtendedXmlSerializer();
    var obj = new Message();
    var xml = serializer.Serialize(obj);
    

    反序列化

    var obj2 = serializer.Deserialize<Message>(xml);
    

    .NET中的标准XML序列化器非常有限。

    • 不支持对具有循环引用的类或具有接口属性的类进行序列化,
    • 不支持字典,
    • 没有读取旧版XML的机制,
    • 如果要创建自定义序列化程序,则您的类必须继承自IXmlSerializable。 这意味着您的课程将不是POCO课程,
    • 不支持IoC。

    ExtendedXmlSerializer可以完成更多任务。

    ExtendedXmlSerializer支持.NET 4.5或更高版本以及.NET Core 。 您可以将其与WebApi和AspCore集成。


    #2楼

    您可以使用此库System.Xml.Linq解析XML。 以下是我用来解析XML文件的示例代码

    public CatSubCatList GenerateCategoryListFromProductFeedXML()
    {
        string path = System.Web.HttpContext.Current.Server.MapPath(_xmlFilePath);
    
        XDocument xDoc = XDocument.Load(path);
    
        XElement xElement = XElement.Parse(xDoc.ToString());
    
    
        List<Category> lstCategory = xElement.Elements("Product").Select(d => new Category
        {
            Code = Convert.ToString(d.Element("CategoryCode").Value),
            CategoryPath = d.Element("CategoryPath").Value,
            Name = GetCateOrSubCategory(d.Element("CategoryPath").Value, 0), // Category
            SubCategoryName = GetCateOrSubCategory(d.Element("CategoryPath").Value, 1) // Sub Category
        }).GroupBy(x => new { x.Code, x.SubCategoryName }).Select(x => x.First()).ToList();
    
        CatSubCatList catSubCatList = GetFinalCategoryListFromXML(lstCategory);
    
        return catSubCatList;
    }
    

    #3楼

    在Addition中,您可以通过以下方式使用XPath选择器(选择特定节点的简便方法):

    XmlDocument doc = new XmlDocument();
    doc.Load("test.xml");
    
    var found = doc.DocumentElement.SelectNodes("//book[@title='Barry Poter']"); // select all Book elements in whole dom, with attribute title with value 'Barry Poter'
    
    // Retrieve your data here or change XML here:
    foreach (XmlNode book in nodeList)
    {
      book.InnerText="The story began as it was...";
    }
    
    Console.WriteLine("Display XML:");
    doc.Save(Console.Out);
    

    文档


    #4楼

    您可以使用XmlDocument并从可通过Linq转换为XML类的属性中操作或检索数据。


    #5楼

    最近,我被要求处理涉及XML文档解析的应用程序,并且我同意Jon Galloway的观点,我认为基于LINQ to XML的方法是最好的。 但是,我确实需要挖掘一些信息以找到可用的示例,因此,事不宜迟,这里有一些示例!

    欢迎任何注释,因为此代码有效,但可能并不完美,我想了解更多有关为此项目解析XML的信息!

    public void ParseXML(string filePath)  
    {  
        // create document instance using XML file path
        XDocument doc = XDocument.Load(filePath);
    
        // get the namespace to that within of the XML (xmlns="...")
        XElement root = doc.Root;
        XNamespace ns = root.GetDefaultNamespace();
    
        // obtain a list of elements with specific tag
        IEnumerable<XElement> elements = from c in doc.Descendants(ns + "exampleTagName") select c;
    
        // obtain a single element with specific tag (first instance), useful if only expecting one instance of the tag in the target doc
        XElement element = (from c in doc.Descendants(ns + "exampleTagName" select c).First();
    
        // obtain an element from within an element, same as from doc
        XElement embeddedElement = (from c in element.Descendants(ns + "exampleEmbeddedTagName" select c).First();
    
        // obtain an attribute from an element
        XAttribute attribute = element.Attribute("exampleAttributeName");
    }
    

    使用这些功能,我可以解析XML文件中的任何元素和任何属性,根本没有问题!


    #6楼

    如果您使用的是.NET 3.5或更高版本,我将使用LINQ to XML


    #7楼

    我不确定是否存在“解析XML的最佳实践”。 有许多适合不同情况的技术。 使用哪种方式取决于具体情况。

    您可以使用LINQ to XMLXmlReaderXPathNavigator甚至是正则表达式。 如果您详细说明您的需求,我可以尝试提出一些建议。


    #8楼

    使用XmlTextReaderXmlReaderXmlNodeReaderSystem.Xml.XPath命名空间。 并且( XPathNavigatorXPathDocumentXPathExpressionXPathnodeIterator )。

    通常, XPath使阅读XML更容易,这正是您所需要的。


    #9楼

    如果使用的是.NET 2.0,请尝试XmlReader及其子类XmlTextReaderXmlValidatingReader 。 它们提供了一种快速,轻量级(内存使用等),仅向前的方式来解析XML文件。

    如果需要XPath功能,请尝试XPathNavigator 。 如果您需要整个文档在内存中,请尝试XmlDocument


    #10楼

    非常简单 我知道这些是标准方法,但是您可以创建自己的库来更好地处理。

    这里有些例子:

    XmlDocument xmlDoc= new XmlDocument(); // Create an XML document object
    xmlDoc.Load("yourXMLFile.xml"); // Load the XML document from the specified file
    
    // Get elements
    XmlNodeList girlAddress = xmlDoc.GetElementsByTagName("gAddress");
    XmlNodeList girlAge = xmlDoc.GetElementsByTagName("gAge"); 
    XmlNodeList girlCellPhoneNumber = xmlDoc.GetElementsByTagName("gPhone");
    
    // Display the results
    Console.WriteLine("Address: " + girlAddress[0].InnerText);
    Console.WriteLine("Age: " + girlAge[0].InnerText);
    Console.WriteLine("Phone Number: " + girlCellPhoneNumber[0].InnerText);
    

    另外,还有其他一些方法可以使用。 例如, 这里 。 而且我认为没有最佳方法可以做到这一点。 您总是需要自己选择,最适合您的选择。


    #11楼

    使用良好的XSD架构通过xsd.exe创建一组类,并使用XmlSerializer从XML中创建对象树,反之亦然。 如果对模型的限制很少,您甚至可以尝试使用Xml * Attributes在模型类和XML之间创建直接映射。

    在MSDN上有一篇有关XML序列化的介绍性文章

    性能提示:构造XmlSerializer的成本很高。 如果您打算解析/写入多个XML文件,请保留对XmlSerializer实例的引用。


    #12楼

    如果您要处理大量数据(许多兆字节),则希望使用XmlReader进行流式解析XML。

    其他任何东西(如果您保留完整的生成的对象图,则XPathNavigatorXElementXmlDocument甚至XmlSerializer )都将导致高内存使用率以及非常缓慢的加载时间。

    当然,如果仍然需要内存中的所有数据,那么您可能没有太多选择。

    展开全文
  • 如何用windows serveice解析一个文件夹下的所有xml文件,然后再以post方式传到web端
  • <p>I need to parse a huge XML that contains lots of job entries, like this <pre><code><?xml version="1.0" encoding="ISO-8859-1"?> <items> <item> <title><![CDATA[...]]>...
  • 不知java有没有解决这事情的api,pkcs#7的签名xml文档
  • 一般地,可以将其结构理解为一颗树,最开始的树根,如图1中的,被称为“根节点”,找到树根之后,继续找到第一个根节点,...,依次能够找到XML文件中所有的数据。图1 XML的层次结构示例 所以,我们要想在程序中读取...

    XML文件作为最常使用的存储层次结构数据的文件类型,被广泛应用于三维模型的存储表示。其文件一般是层次化的,用于描述层次化数据,如图1所示。一般地,可以将其结构理解为一颗树,最开始的树根,如图1中的,被称为“根节点”,找到树根之后,继续找到第一个根节点,...,依次能够找到XML文件中所有的数据。

    147fd77fab537be1fabacd4add94c783.png

    图1 XML的层次结构示例

    所以,我们要想在程序中读取和处理XML文件,就需要根据XML文件的结构,解析XML文件的所有信息,从而能够处理XML文件中的信息。

    由于C语言比较底层,从最基本的文件读写开始写解析XML文件的程序极其困难,并且存在操作不方便,难以扩展和缺乏鲁棒性等问题,所以,在实际开发领域,工程师们一般会找成熟的XML解析库来使用,如本文所要讲的libxml库,使用这些成熟的代码库,能够基本保证程序的稳定性和鲁棒性,并且由于libxml有公开的文档,团队协作就有标准可依。

    libxml库需要下载,你可以从官网和github下载,也可以从微云下载,下载地址:https://share.weiyun.com/omPVXlss

    下载下来之后,我们需要分别编译三个文件,三个文件分别解压,分别编译。编译之后将生成的lib文件配置到你的工程文件中(这里我们的工程文件使用Visual Studio创建的项目)。

    c7747d9d8e3aa954bb2de0b75b4303ea.png

    图2 需编译的三个文件

    环境配置成功之后,那么如何解析XML文件呢?

    解析文档时只需要文档名和一个函数调用,再加上错误处理。下面代码查找keyword节点并打印节点下的文本内容,如下:

    #include #include #include #include #include static int parseXMLDoc(const char* docname) { xmlDocPtr doc;//XML文件指针    xmlNodePtr cur;//当前节点    xmlNodePtr subcur;//子节点    xmlKeepBlanksDefault(0);  doc = xmlParseFile(docname);    if (doc == NULL) {        fprintf(stderr, "doc error!");        return 0;    }    cur = xmlDocGetRootElement(doc);//获取根节点    if (cur == NULL) {        fprintf(stderr, "root error!");        xmlFreeDoc(doc);        return 0;    }    //根节点如果不是“xml”,则返回    if (xmlStrcmp(cur->name, (const xmlChar*)"xml")) {        printf("end");        return 0;    }  //获取子节点,获取名称为"coefs"的子节点,xml->Geometry->coefs    cur = cur->children;    while (cur != NULL) {        subcur= cur->xmlChildrenNode;        while (subcur != NULL) {            if (strcmp(subcur->name, "coefs") == 0){//查找名称为coefs的子节点                char* str = (char*)xmlNodeGetContent(subcur);            }            subcur = subcur->next;        }        cur = cur->next;    }    xmlFreeDoc(doc);    return 0;}  int main(int argc, char **argv){char *docname;if(argc <= 1){printf("Usage: %s docname", argv[0]);return 0;}docname=argv[1];parseXMLDoc(docname);return 1;}

    解析XML文档的基本流程如下:

    (1)定义文档指针、节点和子节点指针。子节点是指节点的节点。这里有个父子关系。

    (2)调用xmlParseFile()解析文档。如果不成功,返回一个错误提示“"doc error!"”并停止。

    (3)调用xmlDocGetRootElement()获取文档根节点,若无根节点则输出错误提示“root error!”,释放文档,停止。

    (4)确认文档是否正确的类型,通过检查根节点名称来判断。

    (5)检索节点的内容,这需要遍历文档树。对每个节点,遍历其子节点都需要一个循环。先用cur = cur->xmlChildrenNode获取第一个子节点,然后通过cur = cur->next不断向前遍历,直到cur==NULL。查找找指定节点时使用xmlStrcmp()函数,如果你指定的名称相同,就找到了你要的节点。通常把查找某个子节点的过程封装成函数。

    (6)获取节点中的内容。查找到指定节点后,调用xmlNodeListGetString()获取节点下的文本。注意在XML中,包含在节点中的文本是这个节点的子节点,因此获取的是cur->xmlChildrenNode中的字符串。xmlNodeListGetString()会为返回的字符串分配内存,因此记得要用xmlFree()来释放它。

    (7)调用xmlFreeDoc()释放文档指针。

    展开全文
  • 如何解析xml文件

    2014-07-09 22:47:12
    NSXMLParser 实现的是sax方法解析xml文件。 dom实现的原理是把整个xml文档一次性读出,放在一个树型结构里。在需要的时候,查找特定节点,然后对节点进行读或写。他的主要优势是实现简单,读写平衡;缺点是比较...

    NSXMLParser 实现的是sax方法解析xml文件。

    dom实现的原理是把整个xml文档一次性读出,放在一个树型结构里。在需要的时候,查找特定节点,然后对节点进行读或写。他的主要优势是实现简单,读写平衡;缺点是比较占内存,因为他要把整个xml文档都读入内存,文件越大,这种缺点就越明显。

    sax实现方法和dom不同。他只在xml文档中查找特定条件的内容,并且只提取需要的内容。这样做占用内存小,灵活,正好满足我们的需求。他的缺点就是写,有些资料介绍了写入的方法,但是我感觉这对本例没有必要。

    运行NSXMLParser涉及设置、运行和响应结果。

    1启动NSXMLParser

    要使用NSXMLParser要先创建它,设置各种属性,主要用到以下几个方法:

    initWithContentsOfURL  NSURL创建解析器

    initWithData                 NSData创建解析器

    setDelegate                  为解析器定义委托

    parse                           运行解析器

    2)充当委托

    最重要的5个方法:  

    //发现元素开始符的处理函数  (即报告元素的开始以及元素的属性) 

    - (void)parser:(NSXMLParser *)parser 

            didStartElement:(NSString *)elementName 

            namespaceURI:(NSString *)namespaceURI 

            qualifiedName:(NSString *)qName 

            attributes:(NSDictionary *)attributeDict


    //处理标签包含内容字符 报告元素的所有或部分内容) 

    - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string


    //发现元素结束符的处理函数,保存元素各项目数据(即报告元素的结束标记)

    - (void)parser:(NSXMLParser *)parser 

            didEndElement:(NSString *)elementName 

            namespaceURI:(NSString *)namespaceURI 

            qualifiedName:(NSString *)qName


    //报告解析的结束 

    - (void)parserDidEndDocument:(NSXMLParser *)parser



    展开全文
  • 一般地,可以将其结构理解为一颗树,最开始的树根,如图1中的,被称为“根节点”,找到树根之后,继续找到第一个根节点,...,依次能够找到XML文件中所有的数据。图1 XML的层次结构示例 所以,我们要想在程序中读取...
  • ios如何解析xml文件

    2013-11-27 02:35:31
    ios中如何解析xml文件 两种方法:1.ios中已有的NSXMLParse类 2.Google的GDataXML也是基于libxml2的,因此在使用GDataXML之前,你需要先导入libxml2。 这里详解ios中的nsxmlparse: NSXMLParser 实现的...
  • 客户端 xmlHttp = null; if (window.XMLHttpRequest) { // If IE7, Mozilla, ... XmlDocument doc = new XmlDocument(); doc.Load(Request.InputStream); 如果用Web服务,可以按字符串参数方式定义
  • dom4j如何解析XML文件

    2016-12-06 15:50:00
    最近在 一些对xml文件的操作,下面简单写一个dom4j解析xml文件并将其封装到一个javabean中的例子,只是具有针对性的,不是...接下来,主要使用到的是dom4j中的SAXReader类,在这里我的流程是传入一个xml文件,调用写...
  • 我们知道,在Web传输过程中有很多结构化数据,xml就是其中的一种。它以其简单、易理解和结构化而著称,虽然在数据传输过程...今天,我们用一个案例来详细了解一下,使用Python如何解析一个xml文档。如何解析一个xml...
  • ios中如何解析xml文件

    千次阅读 2011-12-22 13:19:05
    ios中如何解析xml文件 两种方法:1.ios中已有的NSXMLParse类  2.Google的GDataXML也是基于libxml2的,因此在使用GDataXML之前,你需要先导入libxml2。 这里详解ios中的nsxmlparse: NSXMLParser 实现的是sax...
  • 一个eclipse工程包含如何使用android中自带的xml解析器pull,解析和生成xml文件
  • 本文采用的SAXBuilder方式读取xml文件,相对于使用DocumentBuilder使用的DocumentBuilderFactory...XML文件如下: --XML的头部分,关于版本以及编码方式,可以不必理会--根节点HD --disk元素为根节点下的第一个节...
  • 比如,其中有个xml文件为: &lt;?xml version="1.0" encoding="UTF-8"&gt; &lt;root&gt; &lt;lists&gt; &lt;item&gt; &lt;id&gt;&lt
  • 试过dom4j和jsoup,这两个一个适合用来解析纯xml文件一个适合解析纯html文件,但是不知如何解析嵌套在xml文件里的html文件。这是我要解析的xml文件截图一部分: ![图片说明]...
  • 本篇文章意在演示如何利用 python 解析 xml 文件。这篇文章的引出背景是,在程序开发过程中,一贯坚持的做法是「约定优于配置」, 但怎么取检测有没有按照约定去做的,以 maven 为例,maven 提供了 maven-enforcer-...
  • 周末回去学习了一下xml文件是如何解析的, ...下面是我写的一个xml文件:books.xml bookstore> book id="1"> name>莽荒纪name> author>我吃西红柿author> year>2014year> price>88price> book> book id="2">
  • 解析xml文件有好多种方式,今天介绍下XmlPullParser怎么解析xml文件,既然是要解析xml文件首先得需要一个xml文件
  • 导读本篇文章意在演示如何利用 python 解析 xml 文件。这篇文章的引出背景是,在程序开发过程中,一贯坚持的做法是「约定优于配置」, 但怎么取检测有没有按照约定去做的,以 maven 为例,maven 提供了 maven-...
  • 前段时间在做一个工程,里面涉及到了解析出一些外部传入的xml的字段属性值,因为刚毕业工作半年,所以之前还不知道有xml解析工具,照样像在学校一样很傻很天真地将其当做字符串来处理解析出字段值,工程代码提交时...
  • 解析XML文件要获取URL地址 今天我使用的是tomcat 以解析tomcat中的xml文件为例,首先要获得网络的lp 在doc命令中输入ipconfig即可 浏览器中输入http://193.168.5.210:8080/persons.xml 出现xml文件...
  • [转载] 一般用来读取xml文件的工具包有DOM、SAX和...而使用Apache Jakarta的Digester,解析XML文件非常方便且不需要过多的关心底层的具体解析过程。Digester本来仅仅是Jakarta Struts中的一个工具,用于处理...
  • 项目组这次要发布一个项目,需要实施人员根据现场的机器情况,修改项目配置文件的几个节点,为了减轻实施人员的工作负担,我应用AutoIt写了一个小界面,实施人员只需在该界面上点几个按钮,就能够完成文件的配置。...
  • python学习() 如何解析xml文件

    千次阅读 2012-11-06 20:54:34
    最近迷恋上了python,因为脚本语言确实很强大,之前写的perl代码现在基本都看不...即android source code是由若干个git project组成的,其中有一个manifest.xml统一管理这些project,用repo命令可以很方便的管理操作这
  • 如何用KissXML生成一个XML文件 因为项目需求,需要本地生成一个XML文件,网上有很多XML解析教程,却很少有创建XML文件的教程,估今天在这里写一篇文章,希望能帮到有需要的人。 KissXML KissXML是一个比较出名的...
  • 最近用到xml文件想把它读取之后存到数据库里面,但是在网上找了一些方法,发现不是会出现文件过大导致堆溢出的问题,就是效率太低,几百万条数据需要好几个小时甚至一两天,于是我就捉摸着自己写了一个。是用SAX解析...
  • DOM方式解析XMLDom解析是将xml文件全部载入到内存,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,与平台无关,java提供的种基础的解析XML文件的API,理解较简单,但是由于整个文档都需要载入内存,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,529
精华内容 611
关键字:

如何解析一个xml文件