Questions tagged «xml»

一种简单,非常灵活的文本格式,表示可扩展标记语言,可用于交换,共享和存储数据。它很容易被计算机解析,但是程序员也可以读取。使用此标记可以解决与使用XML主题有关的问题。

5
XSLT和可能的替代品
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 我看过XSLT,它可以将一个XML文件转换为另一个XML文件(HTML等)。现在,尽管我看到XSLT(作为一种标准化且使用过的工具)有很多好处,但出于以下几个原因,我还是不愿意 XSLT处理器似乎非常庞大/资源匮乏 XML对于编程来说是一个糟糕的表示法,这就是XSLT的全部含义。 它不想在这里拖拉XSLT,尽管我只是想指出我不喜欢XSLT的原因,以使您了解我对替代产品的期望。 有一些Lisp背景知识,我想知道是否有一些基于Lisp的树结构转换的更好方法。我看到过对DSSSL的引用,可悲的是,大多数关于DSSSL的链接都已失效,因此查看一些说明它的代码已经具有挑战性。是否仍在使用DSSSL?我记得在签出docbook内容时我曾经安装过openjade。 Jeff Atwood的博客文章似乎暗示使用Ruby而不是XSLT。 在非xml编程语言中,是否有任何明智的方式来进行类似于XSLT的XML转换?我愿意接受输入 有用的脚本语言库,可促进XML转换 特别是(但不限于)类似Lisp的转换语言或Ruby等。 到目前为止,我发现了一些东西: 网上有几个地方指出Linq是一种可能的选择。通常,我会进行任何类型的分类,也包括那些拥有最佳XSLT经验的分类。 对于方案http://cs.brown.edu/~sk/Publications/Papers/Published/kk-sxslt/和http://www.okmij.org/ftp/Scheme/xml.html
15 xml  lisp  linq  xslt 


3
使用策略模式的Java通用文件解析器设计
我正在开发一种产品,其中一个模块的职责是解析XML文件并将所需内容转储到数据库中。即使目前的要求只是解析XML文件,我仍希望以一种将来可以支持任何类型文件的方式设计解析模块。采用这种方法的原因是,我们正在为特定客户生产该产品,但计划在不久的将来将其出售给其他客户。当前客户端的生态系统中的所有系统都会生成和使用XML文件,但其他客户端可能并非如此。 到目前为止,我尝试了什么?(现在) 我想到的是基于策略模式的以下设计。我很快就用eclipse编写了代码以传达我的设计,因此,如果暂时忽略其他方面(如正确的异常处理方式),那将是很好的选择。 Parser:公开解析方法的策略接口。 public interface Parser<T> { public T parse(String inputFile); } *使用泛型参数的原因是允许任何返回类型以及在编译时确保类型安全。 ProductDataXmlParser一个具体类,用于解析包含产品相关信息的product.xml文件。(使用XMLBeans) public class ProductDataXmlParser implements Parser<ProductDataTYPE> { public ProductDataTYPE parse(String inputFile) { ProductDataTYPE productDataDoc = null; File inputXMLFile = new File(inputFile); try { productDataDoc = ProductDataDocument.Factory.parse(inputXMLFile); } catch(XmlException e) { System.out.println("XmlException while parsing file : "+inputXMLFile); …
14 java  design  parsing  xml 

3
在代码中生成Excel(xlsx)文件的良好设计模式是什么?
有关更多信息,请参见底部的我的更新。 有时,我有一些项目必须将某些数据输出为Excel文件(xlsx格式)。该过程通常是: 用户单击我的应用程序中的一些按钮 我的代码运行数据库查询并以某种方式处理结果 我的代码使用Excel com互操作库或某些第三方库(例如Aspose.Cells)生成* .xlsx文件 我可以轻松地找到有关如何在线执行此操作的代码示例,但是我正在寻找一种更强大的方法来执行此操作。我希望我的代码遵循一些设计原则,以确保我的代码可维护且易于理解。 这是我最初尝试生成xlsx文件的样子: var wb = new Workbook(); var ws = wb.Worksheets[0]; ws.Cells[0, 0].Value = "Header"; ws.Cells[1, 0].Value = "Row 1"; ws.Cells[2, 0].Value = "Row 2"; ws.Cells[3, 0].Value = "Row 3"; wb.Save(path); 优点:不多。它可以工作,所以很好。 缺点: 单元格引用是经过硬编码的,因此在我的代码中到处都是乱七八糟的数字。 如果不更新许多单元格引用,则很难添加或删除列和行。 我需要学习一些第三方库。一些库的使用方式与其他库一样,但是仍然存在问题。我有一个问题,com互操作库使用基于1的单元格引用,而Aspose.Cells使用基于0的单元格引用。 这是一种解决上面列出的缺点的解决方案。我想将数据表当作自己的对象,可以在不深入了解单元操作和不干扰其他单元格引用的情况下随意移动和更改数据。这是一些伪代码: var headers = new Block(new string[] …

12
使用XML作为数据存储[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我在考虑XML格式和以下引号: “ XML不是数据库。它从来都不是一个数据库。它永远不会成为数据库。关系数据库是经过验证的技术,具有20多年的实施经验。它们是坚固,稳定,有用的产品。他们不会消失。XML是在不同数据库之间或数据库与其他程序之间移动数据的非常有用的技术。但是,它本身不是数据库。“不要像以前一样使用它。”- Elliotte Rusty Harold着,有效的XML:50种改进XML的特定方法(第230页,第4部分,第41项,第二段) 这似乎确实强调了XML不应该用于数据存储,而应该仅用于程序之间的互操作性。 我个人不同意,app.config用于存储程序设置的.NET 文件是XML文件中数据存储的一个示例。但是,对于数据库而不是配置等,不应使用XML。 为了 阐明我的观点,我将使用两个示例:A)有关客户的数据全部都在一个级别上,即,有许多字段都与一位没有子 级的客户有关B)有关应用程序配置的数据,其中嵌套字段和属性很有意义 所以我的问题是,这仍然是有效的语句吗?现在可以接受使用XML存储数据了吗? 编辑:我已经给该报价的作者发送了一封电子邮件,要求他提供输入/其他上下文。

8
XML对开发人员有多重要?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 每个开发人员都必须了解XML吗?XML对开发人员有多重要?任何建议...
12 xml 

3
XML优于S-expressions(-ish)表示法的优点是什么?
我想问一个关于XML和S-expressions(-ish)表示法的问题。S表达式很老。他们也很简单。我们可以考虑两种含义相同但语法不同的形式: (来自波兰维基百科的 xml代码) <?xml version="1.0" encoding="UTF-8"?> <ksiazka-telefoniczna kategoria="bohaterowie książek"> <!-- komentarz --> <osoba charakter="dobry"> <imie>Ambroży</imie> <nazwisko>Kleks</nazwisko> <telefon>123-456-789</telefon> </osoba> <osoba charakter="zły"> <imie>Alojzy</imie> <nazwisko>Bąbel</nazwisko> <telefon/> </osoba> </ksiazka-telefoniczna> S-Expression(-ish)版本: (:version "1.0" :encoding "utf-8") (ksiazka-telefoniczna :category "bohaterowie książek" ; komentarz(a comment) (osoba :charakter "dobry" (imie Ambroży) (nazwisko Kleks) (telefon 123-456-789)) (osoba :charakter "zły" (imie …
11 xml 

7
解析XML的技术
我总是发现XML有点麻烦处理。我不是在谈论实现XML解析器:我是在谈论使用现有的基于流的解析器,例如SAX解析器,该解析器逐节点处理XML。 是的,为这些解析器学习各种API确实很容易,但是每当我查看处理XML的代码时,我总是发现它有些复杂。根本的问题似乎是XML文档在逻辑上被分离为各个节点,但是数据类型和属性通常与实际数据分离,有时通过多层嵌套。因此,当单独处理任何特定节点时,需要维护许多额外的状态以确定我们在哪里以及下一步需要做什么。 例如,给出一个典型XML文档的片段: <book> <title>Blah blah</title> <author>Blah blah</author> <price>15 USD</price> </book> ...如何确定何时遇到包含书名的文本节点?假设我们有一个简单的XML解析器,它就像一个迭代器,每次调用时,都会为我们提供XML文档中的下一个节点XMLParser.getNextNode()。我不可避免地发现自己正在编写如下代码: boolean insideBookNode = false; boolean insideTitleNode = false; while (!XMLParser.finished()) { .... XMLNode n = XMLParser.getNextNode(); if (n.type() == XMLTextNode) { if (insideBookNode && insideTitleNode) { // We have a book title, so do something with it } …

4
我应该解析服务器上的XML还是提供代理并让浏览器解析它?
我需要与第三方API交互。使用此API,我可以从最终用户的浏览器中发出GET请求,并接收XML响应。该数据将在基于浏览器的应用程序中使用,用户可以在该应用程序中进行搜索,使用它来做出决定等。主要问题是大多数浏览器已锁定跨域XML的使用,因此我不能简单地获取API中的XML。 但是,总体数据基本上分为两组。 第一组数据是公共数据,只需要经常更新一次,因此可以为服务器端的所有用户缓存数据,从而大大减少了通信量。 第二组数据是私有的,对于每个用户而言都是个体的。此数据还会在API中更频繁地更新。这导致缓存效率大大降低。 出于可伸缩性的原因,我想使服务器的负载尽可能小。 我面前有两个选择: 提供一个代理,该代理可用于将XML请求路由到第三方服务器,并直接在客户端和第三方API之间来回传递。 让服务器执行从XML到JSON的转换并去除不必要的信息。从本质上讲,这意味着为我们的服务器创建一个新的API,从而转化为来自第三方API的请求 向用户提供数据的最佳方法是什么?(不必是两个选项之一)
11 javascript  api  xml  websites  json 

3
XML与SQL小型项目?
我正在做一个小项目,因为它是本地应用程序(在WPF和C#中开发),所以一次只能有一个用户。为了存储数据,我曾考虑使用XML文件,但我想知道这是否是最佳方法。 数据用于什么: 舍杜勒斯 文件夹中的文件库(带有艺术家名称,标题,HDD上的位置) 可能基于统计数据进行统计 ... 我想像中有关该库的信息会很好用XML,但是对于其余所有信息我都不太确定。同样,就开发速度而言,LINQ to SQL似乎比LINQ to XML更具收益。这是正确的还是我错了?我不确定是否应该将其发布在SO上或此处,但在这里似乎更合适! 先感谢您
10 sql  wpf  xml 

5
如何确定存储格式之间的区别,以及其中的一些示例用例?
我们有不同的方式来存储程序数据(在游戏,员工数据库,程序配置等中保存文件): 纯文本(.ini和.conf) XML格式 数据库(MySQL,SQLite ...) .zip 包含多个文件(格式不同)的类似文件 二进制文件(.doc例如,由序列化工具创建的文件等) 上面列出的格式有哪些不同的用例,它们的优点与缺点(考虑速度,灵活性,文件大小,易用性...)之间有什么分别?如何在不同任务之间做出决定? 关于压缩格式:仅用于包含其他文件。它也可以是另一种压缩格式。这允许几个文件的结构,包括图像文件,声音文件和文本文件。例如,假设您有一种消息的存储格式,其中可能包含文件。压缩文件中可以包含以下文件: message.txt (containing the message) attachments (folder containing attachments) audio.wav picture.jpg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.