如何从 MarkLogic Javascript 中的 xml 中删除数据类型信息?
How can I remove data type information from my xml in MarkLogic Javascript?
我在 MarkLogic 中通过 Javascript 生成了一个 XML 数据:
<Activities datatype="array">
<Activity>
<ActivityCrewSize>10</ActivityCrewSize>
<ActivitySeqNo>1</ActivitySeqNo>
<ActivityDesc/>
</Activity>
</Activities>
如何删除数据类型信息,使其看起来像这样:
<Activities>
<Activity>
<ActivityCrewSize>10</ActivityCrewSize>
<ActivitySeqNo>1</ActivitySeqNo>
<ActivityDesc/>
</Activity>
</Activities>
obj.Activities = [];
let act = {
'$type': 'Activity',
'$version': '0.0.1',
}
for (const item of activities) {
act.ActivityCrewSize = fn.normalizeSpace(hl.elementText(item, "CrewSize", true));
act.ActivitySeqNo = fn.normalizeSpace(hl.elementText(item, "SeqNo", true));
act.ActivityDesc = hl.elementText(item, null, true);
obj.Activities.push(act);
}
return obj;
您可以按名称删除属性。
xmlDoc.getElementsByTagName("Activities")[0].removeAttribute('datatype');
<Activities datatype="array">
<Activity>
<ActivityCrewSize>10</ActivityCrewSize>
<ActivitySeqNo>1</ActivitySeqNo>
<ActivityDesc/>
</Activity>
</Activities>
如果您需要简短,这可能会满足您的要求。
var _xml = '<Activities datatype="array"><Activity><ActivityCrewSize>10</ActivityCrewSize<ActivitySeqNo>1</ActivitySeqNo><ActivityDesc/></Activity></Activities>';
var _test = _xml.replace(/\sdatatype\=\".+\"/g,'');
alert(_test);
这将从您的 XML-String 通配符中删除任何出现的“datatype="(anything)"'。
https://jsfiddle.net/53817ofj/
如果你需要更复杂一点,你可能想看看https://www.w3schools.com/xml/xml_parser.asp
我能够通过使用 MarkLogic 中的 Sequence.from
函数转换数据来删除数据类型信息。希望这对以后的任何人都有帮助。
我在 MarkLogic 中通过 Javascript 生成了一个 XML 数据:
<Activities datatype="array">
<Activity>
<ActivityCrewSize>10</ActivityCrewSize>
<ActivitySeqNo>1</ActivitySeqNo>
<ActivityDesc/>
</Activity>
</Activities>
如何删除数据类型信息,使其看起来像这样:
<Activities>
<Activity>
<ActivityCrewSize>10</ActivityCrewSize>
<ActivitySeqNo>1</ActivitySeqNo>
<ActivityDesc/>
</Activity>
</Activities>
obj.Activities = [];
let act = {
'$type': 'Activity',
'$version': '0.0.1',
}
for (const item of activities) {
act.ActivityCrewSize = fn.normalizeSpace(hl.elementText(item, "CrewSize", true));
act.ActivitySeqNo = fn.normalizeSpace(hl.elementText(item, "SeqNo", true));
act.ActivityDesc = hl.elementText(item, null, true);
obj.Activities.push(act);
}
return obj;
您可以按名称删除属性。
xmlDoc.getElementsByTagName("Activities")[0].removeAttribute('datatype');
<Activities datatype="array">
<Activity>
<ActivityCrewSize>10</ActivityCrewSize>
<ActivitySeqNo>1</ActivitySeqNo>
<ActivityDesc/>
</Activity>
</Activities>
如果您需要简短,这可能会满足您的要求。
var _xml = '<Activities datatype="array"><Activity><ActivityCrewSize>10</ActivityCrewSize<ActivitySeqNo>1</ActivitySeqNo><ActivityDesc/></Activity></Activities>';
var _test = _xml.replace(/\sdatatype\=\".+\"/g,'');
alert(_test);
这将从您的 XML-String 通配符中删除任何出现的“datatype="(anything)"'。 https://jsfiddle.net/53817ofj/
如果你需要更复杂一点,你可能想看看https://www.w3schools.com/xml/xml_parser.asp
我能够通过使用 MarkLogic 中的 Sequence.from
函数转换数据来删除数据类型信息。希望这对以后的任何人都有帮助。