gpt4 book ai didi

javascript - DOMParser 未识别文本节点 (javascript)

转载 作者:行者123 更新时间:2023-12-02 19:03:45 32 4
gpt4 key购买 nike

我遇到了一个非常不寻常的问题。如果有必要,为了更好地了解整体情况,请参阅我的上一篇文章,Unable to retrieve a sub-NodeList from a NodeList in Javascript .

嗯,现在可以了,但是当我尝试使用基本相同的方法解析不同的 XML 字符串时,生成的 NodeList 将不包含任何文本节点。我将尝试将部分字符串发布到 NodeList 中,而不是格式化 XML:

<clients><client><code>1111</code><crm>2222</crm><company><name>FOO</name><enterprise>BAR</enterprise><cnpj>XXX</cnpj></company></client></clients>

请注意,这些不是节点的实际值,但父节点客户端遵循此结构(尽管有所删节)。

因此,出于测试目的,我最终使用以下代码来查看列表是否已正确创建:

function parseClientsXML(xmlString, filter){
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var clients = xmlDoc.getElementsByTagName(filter);

for(var i = 0; i < clients.length; i++){
var client = clients[i].childNodes;
for (var j = 0; j < client.length; j++){
var node = client[j];
$('#div_clients').append("Node index: " + i + " - Type: " + node.nodeType + " - Name: " + node.nodeName + "<br>");
}
}

调用函数:

parseXML(theString, "clients");

我期望的结果是这样的:

Node index: 0 - Type: 1 - Name: client
Node index: 1 - Type: 1 - Name: code
Node index: 2 - Type: 3 - Name: #text
Node index: 3 - Type: 1 - Name: crm
Node index: 4 - Type: 3 - Name: #text

等等。使用从我的另一篇文章中的 XML 解析的字符串作为“theString”,它工作得很好。但这篇文章中的字符串输出如下:

Node index: 0 - Type: 1 - Name: client
Node index: 1 - Type: 1 - Name: code
Node index: 2 - Type: 1 - Name: crm
Node index: 3 - Type: 1 - Name: company
Node index: 4 - Type: 1 - Name: name
...

我一整天都在研究这个问题,但找不到解决方案。输入字符串与我上面发布的字符串完全相同(好吧,不完全一样,但很接近)。有什么想法吗?

最佳答案

按照 promise 解决您的问题。

function parseClientsXML(xmlString, filter) {
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString, "text/xml");

(function output(node, filter) {
var child;
var children = node.childNodes.length;

if (filter === "") {
$('#div_clients').append(node.nodeType + " : " + node.nodeName + "<br>");
} else {
filter = node.nodeName === filter ? "" : filter;
}

for (child = 0; child < children; child += 1) {
output(node.childNodes[child], filter);
}
}(xmlDoc, filter));
}

关于javascript - DOMParser 未识别文本节点 (javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14527123/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com