Google 应用脚本 - XML 解析 - 无法从第 4 个子级别获取元素

Google App Script - XML Parse - Can not get elements from 4th Child level

提问人:William Belini 提问时间:9/5/2023 最后编辑:William Belini 更新时间:9/5/2023 访问量:37

问:

I Have this HTML, from google drive.
    
    <rDE xmlns="http://ekuatia.set.gov.py/sifen/xsd"
xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://ekuatia.set.gov.py/sifen/xsd siRecep> 
DE_v150.xsd">   
            <DE Id="123456789">>    
                 <gDtipDE>> 
                    <gCamCond>
                       <iCondOpe>2</iCondOpe>
                       <gPagCred>
                          <iCondCred>2</iCondCred>
                          <dDCondCred>Cuota</dDCondCred>

我的代码(通用)

function getDataFromXML(fileId,Attribute,Child0,Child1,Child2,...,Childn)
  let data = DriveApp.getFileById(fileId).getBlob().getDataAsString();
      
  let doc = XmlService.parse(data);
    
  let root = doc.getRootElement(); 
    
  let namespace = XmlService.getNamespace('http://ekuatia.set.gov.py/sifen/xsd'); 
    
  var foods = root.getChild(Child0,namespace).getChild(Child1,namespace).getChild(Child2,namespace).getChildText(Attribute,namespace);

孩子 0 它唯一的“DE”,如果我改变,它就不起作用(我知道了很多)。

我的问题是 => 它可以在节点编号 3 (Child0..1..2). 也就是说,从“gPagCred”项中,我不能包含 getChild(Child3, namespace).getChildText(Attribute, namespace),因为它返回“null”。有人可以帮我吗?

我想要一个表单来访问来自深层节点的数据。它一直工作到节点 3 使用 root.getChild(0).getChild(1).getChild(2).getChildText(Attibute),如果我包含 getChild(3) 来访问更多深度节点,它总是返回“null”。

我解决了它。它确实有效,但我没有正确配置其他结构(它没有出现在这里)。所以,它有效。

xml google-apps-script xml-parsing 元素 get-childitem

评论

1赞 Tanaike 9/5/2023
为了正确理解您的问题,您能否提供您期望的示例输入和输出值?
0赞 Tedinoz 9/5/2023
I solve it. At really it works but I not configure if else estructure correctly (it don´t appear here). So, it works.你是说你已经回答了你自己的问题吗?
0赞 William Belini 9/9/2023
是的。该代码用于获取子值(所有级别)。它之前失败了,因为我错了。

答: 暂无答案