- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有 2 个 XML 文件,第一个工作正常:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns3:ConsultarSituacaoLoteRpsResposta xmlns:ns2="http://www.ginfes.com.br/tipos_v03.xsd" xmlns:ns3="http://www.ginfes.com.br/servico_consultar_situacao_lote_rps_resposta_v03.xsd">
<ListaMensagemRetorno>
<ns2:MensagemRetorno>
<ns2:Codigo>E172</ns2:Codigo>
</ns2:MensagemRetorno>
</ListaMensagemRetorno>
</ns3:ConsultarSituacaoLoteRpsResposta>
我用来阅读它的代码是这样的:
MyNode := Doc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('MensagemRetorno');
MyValue := MyNode.ChildValues['Codigo'];
问题是我有第二个 XML:
<?xml version="1.0" encoding="utf-8"?>
<ConsultarSituacaoLoteRpsResposta xmlns="http://www.issnetonline.com.br/webserviceabrasf/vsd/servico_consultar_situacao_lote_rps_resposta.xsd">
<ListaMensagemRetorno>
<MensagemRetorno>
<Codigo xmlns="http://www.issnetonline.com.br/webserviceabrasf/vsd/tipos_complexos.xsd">E156</Codigo>
</MensagemRetorno>
</ListaMensagemRetorno>
</ConsultarSituacaoLoteRpsResposta>
请注意,此 XML 在“Codigo”节点中有一个命名空间,因此我的代码找不到此节点。
我发现从第二个 XML 中读取“Codigo”值的唯一方法是这样的:
for I := 0 to MyNode.ChildNodes.Count -1 do
begin
ChildNode := RetornoNode.ChildNodes[I];
if ChildNode.NodeName = 'Codigo' then
Codigo := ChildNode.NodeValue;
end;
但我认为应该有更好的方法来做到这一点,因为我仍然不明白为什么第一个代码不能与第二个 XML 一起工作。
谁能帮我解释一下?
最佳答案
这似乎是 ChildValues
的限制属性
您可以使用这些替代方法之一来返回值
MyNode := Doc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('MensagemRetorno');
MyValue :=MyNode.ChildNodes.First.Text;
或使用 FindNode
的重载版本方法
MyNode := Doc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('MensagemRetorno');
MyValue:= MyNode.ChildNodes.FindNode('Codigo','http://www.issnetonline.com.br/webserviceabrasf/vsd/tipos_complexos.xsd').Text;
关于xml - 使用带有命名空间的 ChildNodes 从 XML 中读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10739145/
只有 JS,没有 Jquery。 如何获取容器的所有子节点,然后为每个子节点获取子节点? 我不想将 ID 添加到作为网格行子级的每个包装器,我尝试使用“this”或此索引进行定位。该脚本应该是动态的,
我有这个简单的html: text1 text2 text3
谁能解释为什么 ChildNodes.FindNode('') (1) 失败但 ChildNodes[''] (2) 成功? ==> 代码: const cNodeSOAPEnvelope =
我需要帮助来理解我成功使用的 dart 代码。 (详细信息:我用它来注入(inject)包含绑定(bind)到可变 CSS 类的 SVG 图形) 我可以在这里调用构造函数参数“注入(inject)依赖
现在,在 Angular 代码的子函数中的compileNodes函数中,有以下几行: } else if (childLinkFn) { childLinkFn(scope, node.chil
您好,我是编码新手,有一个通用问题,我到处查找但找不到解决方案。我正在学习 javascript 教程,并遇到了这一行特定的代码。子节点指出属性“backgroundColor”未定义,我不确定为什么
使用这个 HTML: 还有这个 JavaScript: var x = document.getElementById("child").childNodes; console.log(x.leng
First p element (index 1) Second p element (index 3) 试图理解为什么索引 0 是文本节点。 根据 w3schools 的这个例子,索引 0、2
场景 我想获取 div 的所有子节点并更改其颜色。代码: function myFunction() { var divv = document.getElementById("divv");
http://www.quirksmode.org/dom/domform.html 我正在尝试在我的项目中实现这个扩展表单功能。但是无法找到字段名称(控制台日志返回“未定义”),直到我将输入字段放在
// Some jQuery to load the HTML file $(function(){ $("#myDiv").load("./someHTMLfile.html"); }); va
我正在尝试使以下代码为每个子节点工作一次。该函数还按照逻辑删除节点,对于多个子节点,它似乎永远不会遍历到每个子节点。 //Deleting from child node va
下面的代码应该让我获得表中复选框旁边的列的值,但是,单击按钮后,我将得到: Cannot read property childNodes of null 注意:来自 firebase 的数据库,表中
我想在 JavaScript 中将 Element 的 childNode 转换为数组。 如何将 childNode 转换为数组?有什么好主意吗? 最佳答案 我用 _.toArray() 做到了这一点
我有以下代码,我正在尝试动态地从元素 supercontainer 中动态删除所有“容器”元素。由于 nodeList 处于事件状态,因此以下代码应删除 container1 以及 container
从下图中可以看出,childNodes 数组有 13 个项目。但显然“book”元素只有 6 个子节点。为什么这是不准确的? 最佳答案 因为 childNodes 返回所有子节点,包括文本节点(即使它
我正在做(强烈推荐)Javascript 教程 ( http://www.newthinktank.com/2015/09/learn-javascript-one-video/ ),其中一个解决方案
我现在正在学习 JavaScript,我正在编写函数来更改每个段落标记 和字体样式标记emphasis(em) 的样式和 bold(b) 位于 内 元素。这是我的程序。 Lorem ipsum d
我是 Ajax 新手。 我正在尝试解析 this document . 我已经了解了 readystatechange,它正在获取 XML。但是当涉及到子节点及其值时,我感到困惑。 这是一些代码。如果
给定一个像这样的简单结构: Text1 Text2 Text3 LinkText4 我正在尝试使用 Javascript 提取所有 Text1-4,不带任何子节点。 循环列 ... x = rows[
我是一名优秀的程序员,十分优秀!