我正在使用libxmljs2并且我有這個 XML:
<Document xmlns="http://hl7.org/fhir">...
<address>
<type value="both" />
<line value="Avenue 123">
<extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber">
<valueString value="123" />
</extension>
<extension url="http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName">
<valueString value="Avenue" />
</extension>
</line>
<city value="Amsterdam" />
<postalCode value="10623" />
</address>
在里面address我可以像這樣提取行值:
NAME_SPACE = { ns: 'http://hl7.org/fhir' }
const myAddress = doc.get('//ns:Address/ns:line', NAME_SPACE) // Avenue 123
但是如何valueStrings單獨提取擴展名?
就像是:
const houseNumber =
const streetName =
uj5u.com熱心網友回復:
我不知道 Node,但看起來您可以使用 xpath 查詢從 xml 中提取值。在 xpath 中,您可以按屬性過濾節點。
例如對于門牌號:
//ns:Address/ns:line/ns:extension[@url='http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber']/ns:valueString/@value
uj5u.com熱心網友回復:
您只需要遍歷valueString將父extensionurl 組件映射到其專案值的專案:
const NAME_SPACE = { ns: 'http://hl7.org/fhir' }
const myAddress = doc.get('//ns:Address/ns:line', NAME_SPACE)
const addressDetails = {}
myAddress.forEach(node => {
const parentExtensionUrl = node.parent().attr('url').value();
const addressDetailsItemName = parentExtensionUrl.substring(parentExtensionUrl.lastIndexOf('-') 1);
addressDetails[addressDetailsItemName] = node.attr('value').value()
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/471898.html
上一篇:XSLT比較串列和輸出單節點
下一篇:使用Python進行XML排序
