qs库Javascript/React read xml response attributes

mbzjlibv  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(109)

我有一段如下的react代码,

const urlEncodePostData = qs.stringify(postData);
    post(url, urlEncodePostData).then(
      (response) => {
        const { data } = response;
        const xmlData = response.data;
        const rowData = loadRowData(xmlData, 'value');
        if (rowData[0].value != null) {
          formSubmitedMessage = rowData[0].value;
        }

我正在向服务器发布,并收到以下格式的响应,

<XML>
<row ID="3123" PatientID="3454">
</row>
</xml>

如何从响应中读取PatientID属性?

p8ekf7hl

p8ekf7hl1#

注意XML是区分大小写的,结束标签必须与开始标签匹配。

<xml>
  <row ID="3123" PatientID="3454"></row>
</xml>

您可以使用DOM解析返回的XML并使用QuerySelector(对于更复杂的XML,可以使用Xpath)。

const xmlDocument = (new DOMParser()).parseFromString(getXMLString(), 'text/xml');

const row = xmlDocument.querySelector('row');
const data = {
  'ID': row?.getAttribute('ID'),
  'PatientID': row?.getAttribute('PatientID')
};

console.log(data);

function getXMLString() {
  return `<?xml version="1.0" encoding="UTF-8"?><xml>
      <row ID="3123" PatientID="3454"></row>
    </xml>`;
}

相关问题