0
Я имею дело с XML-файл, который, как показано нижесинтаксического анализа данных из XML в R
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:obs="http://observation.services.zye.hc.com" xmlns:xsd="http://ws.zye.hc.com/xsd" xmlns:xsd1="http://observation.services.zye.hc.com/xsd" xmlns:xsd2="http://common.zye.hc.com/xsd">
<soapenv:Header/>
<soapenv:Body>
<obs:createObservations>
<obs:context>
<xsd:applicationId>1000</xsd:applicationId>
<xsd:patid>654321</xsd:patid>
<xsd:password>Password123</xsd:password>
<xsd:userNum>TestUser</xsd:userNum>
</obs:context>
<obs:attributes>
<xsd1:aggregateName>Basic</xsd1:aggregateName>
<xsd1:encounterId>11111</xsd1:encounterId>
<xsd1:observedDateTime>2016-06-29T16:30:00</xsd1:observedDateTime>
</obs:attributes>
<obs:observations>
<xsd1:code>
<xsd2:code>22222</xsd2:code>
<xsd2:codeText>Jane Doe</xsd2:codeText>
</xsd1:code>
<xsd1:effectiveTime>
<xsd2:high></xsd2:high>
<xsd2:low>2016-06-29T00:00:00</xsd2:low>
</xsd1:effectiveTime>
<xsd1:eTicketId>12345</xsd1:eTicketId>
<xsd1:observationId>
<xsd1:createTimeStamp>2016-06-29T16:30:17.123456</xsd1:createTimeStamp>
<xsd1:type>RESULTS</xsd1:type>
</xsd1:observationId>
<xsd1:value>Yes</xsd1:value>
</obs:observations>
</obs:createObservations>
</soapenv:Body>
</soapenv:Envelope>
Моя цель это заменить значения для элементов
xsd:applicationId
xsd:patid
xsd1:encounterId
xsd1:observedDateTime
xsd2:codeText
xsd2:low
xsd1:type
xsd1:value
Я попробовал этот подход ниже
test_xml_parse = xmlParse(assign_the_xml_file_to_a_variable, asText=TRUE)
test_xml_ns = getNodeSet(test_xml_parse , '/obs:createObservations')
which(sapply(test_xml_ns = getNodeSet(test_xml_parse , '/obs:createObservations')
, xmlGetAttr, "name") == "xsd:applicationId")
Но это не работает, не уверен, где я ошибаюсь.
Любые предложения или указатели о том, как заменить значения для элементов, упомянутых выше, очень ценятся.
, который работал идеально. Есть незначительная проблема. После замены старого «xmlValue» новым значением новый xml-файл «test_xml_parse» теперь содержит тег объявления xml ' Xml version =" 1.0 "?>' Вверху, в первой строке. Как избавиться от этого тега объявления xml? Поскольку это вызывает некоторые ошибки, когда я отправляю новый XML-файл с помощью функции curlPerform –
См. Http://stackoverflow.com/questions/31906034/prevent-adding-first-line-when-using-htmlparse-from-xml-package - вы можете использовать 'xmlRoot (x)'. – lukeA
который работал отлично. Благодарю. +10 за помощь мне в этом дополнительном вопросе :) –