【问题标题】:Parsing xml stored in string解析存储在字符串中的xml
【发布时间】:2013-01-26 18:04:08
【问题描述】:

我有一个以 xml 格式编码的字符串。所以当我将它打印到控制台时,它会看起来像一个 xml 文件。我想做的是现在使用带有 DOM 或 SAX 库的 java 从这个字符串中读取值。但我不知道该怎么做,因为我的字符串没有存储在文件中。

<?xml version="1.0" encoding="UTF-8"?>
<ADT_A01 xmlns="urn:hl7-org:v2xml">
    <MSH>
        <MSH.1>|</MSH.1>
        <MSH.2>^~\&amp;</MSH.2>
        <MSH.3>
            <HD.1>HIS</HD.1>
        </MSH.3>
        <MSH.4>
            <HD.1>RIH</HD.1>
        </MSH.4>
        <MSH.5>
            <HD.1>EKG</HD.1>
        </MSH.5>
        <MSH.6>
            <HD.1>EKG</HD.1>
        </MSH.6>
        <MSH.7>199904140038</MSH.7>
        <MSH.9>
            <MSG.1>ADT</MSG.1>
            <MSG.2>A01</MSG.2>
        </MSH.9>
        <MSH.11>
            <PT.1>P</PT.1>
        </MSH.11>
        <MSH.12>
            <VID.1>2.6</VID.1>
        </MSH.12>
    </MSH>
    <PID>
        <PID.1>1</PID.1>
        <PID.3>
            <CX.1>1478895</CX.1>
            <CX.2>4</CX.2>
            <CX.3>M10</CX.3>
            <CX.4>
                <HD.1>PA</HD.1>
            </CX.4>
        </PID.3>
        <PID.5>
            <XPN.1>
                <FN.1>XTEST</FN.1>
            </XPN.1>
            <XPN.2>PATIENT</XPN.2>
        </PID.5>
        <PID.7>19591123</PID.7>
        <PID.8> F</PID.8>
    </PID>
</ADT_A01>

【问题讨论】:

  • stackoverflow.com/questions/1219596/…,也可以使用prettyprint/format作为关键字来查找更多结果
  • 你能发布你的 xml 吗?你想从中获得什么价值?如果您可以采样输入和预期结果会很好
  • 我将如何获取根节点以及名为 ADT_A01 的文本(并不总是相同)。当我尝试获取它时,我总是得到标签 [#text:]

标签: java xml utf-8


【解决方案1】:

对于 DOM,一种选择是使用 InputSource:

String str = "<xml>...</xml>";
DocumentBuilder builder = DocumentBuilderFactory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(str)));

您可以对 SAX 使用类似的策略,因为它也支持 InputSource

【讨论】:

  • 谢谢。我有这个根节点 有没有办法只获取文本 ADT_A01(它不会总是被称为 ADT_A01)
  • 如果你使用 DOM,你可以在 Document 对象上使用 getDocumentElement() 来获取根元素,然后在返回的 Element 对象上调用 getTagName() 或 @ 987654328@ 如果你想要一个非命名空间的名字。
猜你喜欢
  • 2011-06-10
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多