E4x xml 删除空标签
E4x xml empty tag remove
我正在尝试删除具有空值的 XML 属性,我正在使用 E4X javascript 需要实现。请帮我解决这个问题。
代码:
function xmlparse(xml) {
var children = xml.*, attributes = xml.@*, length = children.length();
for each (var child in children) {
if(child.hasComplexContent())
{
for each (var chi in child.children()) {
var c= chi.localName()
if(chi.hasSimpleContent())
{
if(chi.@value == "")
{
delete chi
}
}
}
var obj = xmlparse(child)
}
}
}
输入:
<Test>
<id value="123"/>
<Book>
<source>
<English>
<bookid value=""/>
<version>
<type>
<place>
<author value="Test123"/>
<index value="10"/>
<display value=""/>
</place>
</type>
</version>
</English>
</source>
</Book>
<Book>
<source>
<German>
<bookid value=""/>
<version>
<type>
<place>
<author value="Test143"/>
<index value=""/>
<display value="Helo"/>
</place>
</type>
</version>
</German>
</source>
</Book>
</Test>
预期输出:
<Test>
<id value="123"/>
<Book>
<source>
<English>
<version>
<type>
<place>
<author value="Test123"/>
<index value="10"/>
</place>
</type>
</version>
</English>
</source>
</Book>
<Book>
<source>
<German>
<version>
<type>
<place>
<author value="Test143"/>
<display value="Helo"/>
</place>
</type>
</version>
</German>
</source>
</Book>
</Test>
一般来说,我需要从XML中移除空标签的值。
请指导我,我尝试了一些示例代码,但它对我不起作用。
由于您想对每个 xml 节点执行相同的检查,因此无需递归地遍历它们。 descendants 方法将立即获取所有这些。检查子元素的 hasSimpleContent 方法确保它没有子元素。
function deleteEmptyElements(xml) {
for each (var child in xml.descendants()) {
if (child.hasSimpleContent() && child.@value.toString() == '') {
delete child[0];
}
}
}
我正在尝试删除具有空值的 XML 属性,我正在使用 E4X javascript 需要实现。请帮我解决这个问题。 代码:
function xmlparse(xml) {
var children = xml.*, attributes = xml.@*, length = children.length();
for each (var child in children) {
if(child.hasComplexContent())
{
for each (var chi in child.children()) {
var c= chi.localName()
if(chi.hasSimpleContent())
{
if(chi.@value == "")
{
delete chi
}
}
}
var obj = xmlparse(child)
}
}
}
输入:
<Test>
<id value="123"/>
<Book>
<source>
<English>
<bookid value=""/>
<version>
<type>
<place>
<author value="Test123"/>
<index value="10"/>
<display value=""/>
</place>
</type>
</version>
</English>
</source>
</Book>
<Book>
<source>
<German>
<bookid value=""/>
<version>
<type>
<place>
<author value="Test143"/>
<index value=""/>
<display value="Helo"/>
</place>
</type>
</version>
</German>
</source>
</Book>
</Test>
预期输出:
<Test>
<id value="123"/>
<Book>
<source>
<English>
<version>
<type>
<place>
<author value="Test123"/>
<index value="10"/>
</place>
</type>
</version>
</English>
</source>
</Book>
<Book>
<source>
<German>
<version>
<type>
<place>
<author value="Test143"/>
<display value="Helo"/>
</place>
</type>
</version>
</German>
</source>
</Book>
</Test>
一般来说,我需要从XML中移除空标签的值。 请指导我,我尝试了一些示例代码,但它对我不起作用。
由于您想对每个 xml 节点执行相同的检查,因此无需递归地遍历它们。 descendants 方法将立即获取所有这些。检查子元素的 hasSimpleContent 方法确保它没有子元素。
function deleteEmptyElements(xml) {
for each (var child in xml.descendants()) {
if (child.hasSimpleContent() && child.@value.toString() == '') {
delete child[0];
}
}
}