[英]How can I get the Element Id from XML parse in Google Apps Script
Xml 代码
<directory>
<fieldset>
<field id="displayName">Display name</field>
</fieldset>
<employees>
<employee id="123">
<field id="displayName">John Doe</field>
</employee>
<employee id="160">
<field id="displayName">Jane Doe</field>
</employee>
我可以使用 XmlService.parse 解析信息并获取每个元素中的值,但我无法获取员工/元素 ID 号
当我运行这个:
var roots = document.getRootElement().getChild('employees').getChildren();
我得到了单个元素,但我无法得到 id
[[Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>], [Element: <employee/>]]
您想从以下 xml 数据中检索123
和160
。
<directory> <fieldset> <field id="displayName">Display name</field> </fieldset> <employees> <employee id="123"> <field id="displayName">John Doe</field> </employee> <employee id="160"> <field id="displayName">Jane Doe</field> </employee>
您想使用 Google Apps Script 的 XmlService 来实现这一点。
roots
检索employee
。 因此,使用它,您可以检索id
的属性。 使用上述 xml 数据时,示例脚本如下。 在此示例中, </employees></directory>
被添加到示例 xml 数据中。
function myFunction() {
const xml = `<directory>
<fieldset>
<field id="displayName">Display name</field>
</fieldset>
<employees>
<employee id="123">
<field id="displayName">John Doe</field>
</employee>
<employee id="160">
<field id="displayName">Jane Doe</field>
</employee>
</employees>
</directory>`;
var document = XmlService.parse(xml);
var roots = document.getRootElement().getChild('employees').getChildren();
var ids = roots.map(e => e.getAttribute("id").getValue());
console.log(ids); // [123, 160]
}
在这种情况下,请使用带有 V8 的脚本。
如果要同时检索employee
的id
和field
的值,也可以使用以下脚本。
var ids = roots.map(e => ({id: e.getAttribute("id").getValue(), name: e.getChild("field").getText()}));
[ { id: '123', name: 'John Doe' }, { id: '160', name: 'Jane Doe' } ]
。当上述 xml 示例数据的结构与您的实际数据不同时,修改后的脚本可能无法正常工作。 所以请注意这一点。
(function() { var roots =document.getElementsByTagName("employees")[0].children; for(k=0;k<roots.length;k++){ var id=roots[k].getAttribute("id") console.log(id); } })();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <directory> <fieldset> <field id="displayName">Display name</field> </fieldset> <employees> <employee id="123"> <field id="displayName">John Doe</field> </employee> <employee id="160"> <field id="displayName">Jane Doe</field> </employee> </employees> </directory>
您可以使用 javascript 像这样访问 id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.