问题标签 [txmldocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8857 浏览

delphi - 如何在 txmldocument.xml 中获取 encoding = "utf-8"?>?

这对我在 Delphi XE2 中不起作用。

我仍然没有得到encoding="utf-8"?>结果文档中的内容。但如果我说

然后我确实进入encoding="utf-16"?>了生成的文档。

有任何想法吗?任何人?

0 投票
1 回答
336 浏览

delphi - vXML.Active := True => EDOMParseError at “%25” 字符序列

当我想加载文件名中包含“%25”的 XML 文件时,我在 Delphi 中遇到了这个问题。

在调试模式下,行中有错误

错误:

第一次机会例外,$75ACC41F。带有消息的异常类 EDOMParseError

行:0'。

Enyone 知道如何让 TXMLDocument 打开文件名中包含“%25”字符的文件吗?

该文件不为空 - 我检查了它。当我删除“%25”字符时,一切正常。示例文件名:“something %25.xml”

我的系统和 IDE:带有 Service Pack 1 的 Windows 7 Home Premium;德尔福 2010;

0 投票
1 回答
166 浏览

delphi - TXMLDocument 中的意外结果

我尝试创建一个 xml 文档来访问 Web 服务。我无法像我想要的那样获得结果 xml 蜜蜂。:-) 这是我创建此文档的 delphicode。

生成的 xml 如下所示。

我希望它看起来像这样。

我无法弄清楚我做错了什么。你们中的任何人都可以帮助我吗?你们中有人知道创建包含标题和正文的 xml 文件的示例/教程吗?

0 投票
2 回答
111 浏览

xml - XML 中的 £ 字符

使用 Delphi XE2 TXMLDocument 和 MSXML

£ 字符不会被标记为无效字符。

这是一个问题吗?更重要的是建议什么解决方法。

TIA

以法莲

0 投票
4 回答
497 浏览

c# - 定义不明确的 XML,将所有子节点的节点和内容作为带空格的字符串连接?

这是一些很棒的 XML 示例:

我只想从部分节点和所有子节点中获取文本作为字符串。但是,请注意子节点周围可能有也可能没有空格,所以我想填充子注释并附加一个空格。

这是一个更精确的示例,说明输入可能是什么样的,以及我希望输出是什么样的:

我希望输出是:

请注意,子节点周围没有空格,因此我需要填充它们,否则单词会一起运行。

我试图使用这个示例代码:

但是输出包括子标签,并且不会起作用。

这里有什么建议吗?

TL;DR: 获得了节点汤 xml,并希望通过子节点周围的填充对其进行字符串化。

0 投票
3 回答
2684 浏览

xml - 使用 Delphi XE8 进行 XSLT 转换的替代方案

我正在尝试使用 Delphi XE8 执行 XSLT 转换并遇到问题。我的 XSL 文件使用其 href 属性具有相对路径的 import 语句引用外部 XSL 文件。转换失败并出现错误“命名模板 'skrivUtDate' 未出现在样式表中。” 定义“skrivUtDate”位于外部 XSL 文件中。定义如下所示:

我已将外部 XSL 文件放在适当的目录中(相对于原始 XSL 文件),但我得到了相同的错误(我还尝试了该外部文件的所有其他可能的目录,但没有一个有效)。但是,我可以使用 EditX XML Editor 执行转换,所以我不认为 XSL 是无效的(注意这个 XSL 文件是由第三方提供的,显然它被一些使用开发平台以外的人成功使用德尔福)。

这是 XSL 文件的开头部分:

而且,是的,funksjoner.xsl 文件位于名为 Felleskomponenter 的目录中。

我非常简单的测试使用类似于以下伪代码的内容:

我知道 Delphi XE7 开始与 Omni XML DOM 以及 ADOM 一起发布,但 Delphi XE8 显然没有这些。我希望使用不同的文档对象模型可以解决这个问题。

XML 非常复杂,XSL 也是如此。

是否有人对使用 Delphi XE8 执行 XSLT 转换的替代方法有任何建议?

0 投票
2 回答
849 浏览

delphi - EDOMParseError 错误代码列表

在哪里可以找到EDOMParseError.ErrorCode值列表?

我在 Delphi 源代码或 MSDN 中找不到它。

例如,如果我设置XMLDocument.FileName为不正确的 url,我有

这些代码是在哪里定义的?

0 投票
1 回答
866 浏览

delphi - MSXML XPath 可以选择属性吗?( UPD:真正的问题是默认的无前缀命名空间)

我想尝试使用 MSXML 和 XPath 解析 Excel XML 电子表格文件。

它有一个根元素<Workbook xmlns.... xmlns....>和一堆下一级节点<Worksheet ss:Name="xxxx">

在某个步骤,我想使用 XPath 来获取工作表的名称。

注意:我不希望间接获取名称,即首先选择这些Worksheet节点,然后手动枚举它们读取它们的ss:Name子属性节点。我能做到的,这不是这里的主题。

我想要的是利用 XPath 的灵活性:直接获取这些ss:Name节点而无需额外的间接层。

当我使用简化'/Workbook/Worksheet'查询 MSXML 正确返回节点时。但是,只要我将属性添加到查询中,MSXML 就会返回空集。

XMLPad Pro 或http://www.freeformatter.com/xpath-tester.html等其他 XPath 实现正确地返回ss:Name属性节点列表。但 MSXML 没有。

帮助 MSXML 返回具有给定名称的属性节点的 XPath 查询文本是什么?

UPD。@koblik 建议链接到 MS.Net 选择器(不是 MSXML 选择器),那里有两个示例 https://msdn.microsoft.com/en-us/library/ms256086(v=vs.110).aspx

  • 示例 1:book[@style]-当前上下文的所有具有样式属性的元素。
  • 示例 2:book/@style-当前上下文的所有元素的样式属性。

这就是我在上面的“注意”中所说的区别:我不需要那些books,我需要styles。我需要属性节点,而不是元素节点!示例 2 的语法正是 MSXML 似乎失败的地方。

UPD.2:一位测试人员显示了一个有趣的错误声明: XPath 查询的默认(无前缀)命名空间 URI始终是 ''并且不能重新定义为 'urn:schemas-microsoft-com:office:spreadsheet' 我想知道是否这样声称 XPath 中没有默认命名空间实际上是标准的一部分,或者只是 MSXML 实现限制。 http://i.imgbox.com/gw9v28ax.png

那么如果要删除默认的 NS,结果应该是这样的: Variant 1: Variant 2:

我想知道关于 XPath 中没有默认命名空间的说法是否真的是标准的一部分,或者只是 MSXML 实现限制。

UPD.3:Martin Honnen 在评论中解释了该行: See w3.org/TR/xpath/#node-tests for XPath 1.0(由 Microsoft MSXML 支持),它明确指出“节点测试中的 QName 扩展为使用表达式上下文中的命名空间声明的扩展名称。这与对开始和结束标记中的元素类型名称进行扩展的方式相同,只是不使用使用 xmlns 声明的默认命名空间:如果 QName 没有前缀,则命名空间 URI 为空”。因此,在 XPath 1.0 中,像“/Workbook/Worksheet”这样的路径会在没有命名空间的情况下选择该名称的元素。

UPD.4:因此选择适用于'/ss:Workbook/ss:Worksheet/@ss:Name'XPath 查询,直接返回“ss:Name”属性节点。在源 XML 文档中,默认(无前缀)和“ss:”命名空间都绑定到同一个 URI。此 URI 由 XPath 引擎确认。但不是默认命名空间,不能在 MSXML XPath 引擎中重新定义(实现 1.0 规范)。因此,为了使其工作,默认命名空间应通过 URI 映射到另一个显式前缀(已经存在的或新创建的),然后将在 XPath 选择字符串中使用该替代前缀。由于命名空间匹配通过 URI 而不是通过前缀,因此文档和查询中使用的前缀是否匹配并不重要,它们将通过它们的 URI 进行比较。

接着

感谢 Asbjørn 和 Martin Honnen 解释了这些琐碎的事后但并不明显的先验关系。

0 投票
1 回答
86 浏览

c++ - 使用 txmldocument (c++ builder 2007) 打开一个 gpx 文件

我有一个 gpx 文件,我想在 c++ builder 2007 下使用 vcl 组件 txmldocument 打开。该文件应该与 xml-version 1.0 兼容,因为它写在第一行,如下面的代码所示。

我在对象检查器的 txmldocument 的文件名行中输入文件名。然后我双击我的 vcl 应用程序表单上的 txmldocument 图标。

我收到错误消息:“ungültiges oder nicht unterstütztes xml-schemadokument。” 这意味着英文:“无效或不支持 xml-schema 文档。”

我的 xml 代码的第一行是:

我在http://www.topografix.com/GPX/1/1/gpx.xsd上看到了代码,但我不明白错误的位置。

也许有人可以帮助我?

谢谢

0 投票
0 回答
294 浏览

xml - 在带有 prolog 的 XML 文档中,如何获取根节点的子节点及其属性?

我有这个 XML 文件:

现在我尝试通过开始读取根节点来开始读取MyApp_Favorites的子节点及其各自的属性(然后我会尝试读取根节点的子节点):

但是,ThisRootNode.Text给我回了:

版本="1.0" 编码="UTF-8"

但是 XML 规范不是说 XML Prolog 不是 XML 文档内容的一部分吗?那么为什么我将 XML Prolog 作为 XML 文档的一部分呢?以及如何获取根节点MyApp_Favorites以及其最喜爱的子节点及其属性?