我无法在 XML 中使用 find () 方法进行搜索

I can not search with the find () method in XML

这是我的XML:monitor.xml

<?xml version="1.0" encoding="utf-8" ?>
<ORU_R01>
  <MSH>
    <MSH.1>|</MSH.1>
    <MSH.2>^~\&amp;</MSH.2>
    <MSH.3>hospital</MSH.3>
    <MSH.7>20170509090310</MSH.7>
    <MSH.9>
      <MSH.9.1>ORU</MSH.9.1>
      <MSH.9.2>R01</MSH.9.2>
    </MSH.9>
    <MSH.12>2.3.1</MSH.12>
  </MSH>
  <PID>
    <PID.2>SOPITA PALOMINO</PID.2>
    <PID.3>SOPITA PALOMINO</PID.3>
    <PID.5>S S</PID.5>
    <PID.7>19881107</PID.7>
    <PID.8>U</PID.8>
  </PID>
  <PV1>
    <PV1.2>U</PV1.2>
    <PV1.3>
      <PV1.3.3>Bed1</PV1.3.3>
    </PV1.3>
    <PV1.18>adult</PV1.18>
    <PV1.44>20170421</PV1.44>
  </PV1>
  <OBR>
    <OBR.7>20170509090310</OBR.7>
  </OBR>
  <OBX>
    <OBX.2>NM</OBX.2>
    <OBX.3>WEIGHT</OBX.3>
    <OBX.5>-1.0</OBX.5>
    <OBX.6>kg</OBX.6>
  </OBX>
  <OBX>
    <OBX.2>NM</OBX.2>
    <OBX.3>HEIGHT</OBX.3>
    <OBX.5>-1.0</OBX.5>
    <OBX.6>cm</OBX.6>
  </OBX>
  <OBX>
    <OBX.2>NM</OBX.2>
    <OBX.3>SpO2</OBX.3>
    <OBX.5>96</OBX.5>
    <OBX.6>%</OBX.6>
    <OBX.7>90-100</OBX.7>
  </OBX>
  <OBX>
    <OBX.2>NM</OBX.2>
    <OBX.3>PR</OBX.3>
    <OBX.5>69</OBX.5>
    <OBX.6>bpm</OBX.6>
    <OBX.7>50-120</OBX.7>
  </OBX>
</ORU_R01>

我试图在 <OBX> 标签内找到 <OBX.3> 标签,但是当我使用 find() 方法时它无法识别点字符 (.)

当我将 <OBX.3> XML 标签更改为 <OBX3>(没有点字符)时,find() 方法可以识别标签。

$("#btnProbar").click(function (e) {

    var TXT_URL = "http://localhost:44467/xml/monitor.xml";
    $.ajax({
        crossDomain: true,
        type: "GET",
        url: TXT_URL,
        dataType: "XML",
        success: function (xml) {
            $(xml).find('OBX').each(function () {
                var hl7_cabecera = $(this).find("OBX.3").text();
                var hl7_valor = $(this).find('OBX.5');
                var hl7_metrica = $(this).find('OBX.6');

                console.log(hl7_cabecera + ": "+hl7_valor +" " +hl7_metrica);
            });
        },
        error: function() {                                               
        alert("The XML File could not be processed correctly.");
    }
    });

});

我可以使用什么方法代替 find() 来检测点字符?

您需要使用正则表达式来获取其中包含点的 xml 个节点。

您需要将您的陈述更改为,

var hl7_cabecera = $(xmlDoc).find('OBX.3'.replace(/\./g,'\.')).text();
var hl7_valor = $(xmlDoc).find('OBX.5'.replace(/\./g,'\.')).text();
var hl7_metrica = $(xmlDoc).find('OBX.6'.replace(/\./g,'\.')).text();

希望对您有所帮助!